
    ~iD                        d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< dd l=m>Z> dd!l?m@Z@ dd"lAmBZB dd#lCmDZD dd$lEmFZF dd%lGmHZH dd&lImJZJ dd'lKmLZL dd(lMmNZN dd)lOmPZP dd*lQmRZR dd+lSmTZT dd,lUmVZV dd-lWmXZX dd.lYmZZZ dd/l[m\Z\ dd0l]m^Z^ dd1l_m`Z` dd2lambZb dd3lcmdZd dd4lemfZf dd5lgmhZh dd6limjZj dd7lkmlZl dd8lmmnZn dd9lompZp dd:lqmrZr dd;lsmtZt dd<lumvZv dd=lwmxZx dd>lymzZz dd?l{m|Z| dd@l}m~Z~ ddAlmZ ddBlmZ ddClmZ ddDlmZ ddElmZ ddFlmZ ddGlmZ ddHlmZ ddIlmZ ddJlmZ ddKlmZ ddLlmZ ddMlmZ ddNlmZ ddOlmZ ddPlmZ ddQlmZ ddRlmZ ddSlmZ ddTlmZ ddUlmZ ddVlmZ ddWlmZ ddXlmZ ddYlmZ ddZlmZ dd[lmZ dd\lmZ dd]lmZ dd^lmZ dd_lmZ dd`lmZ ddalmZ ddblmZ ddclmZ dddlmZ ddelmZ ddflmZ ddglmZ ddhlmZ ddilmZ ddjlmZ ddklmZ ddllmZ ddmlmZ ddnlmZ ddolmZ ddplmZ ddqlmZ ddrlmZ ddslmZ ddtlmZ ddulmZ ddvlmZ ddwlmZ ddxlmZ ddylmZ ddzlmZ dd{lmZ dd|lmZ dd}lmZ dd~lmZ dS )a   
    directconnect

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

    OpenAPI spec version: common-version
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
    )absolute_import),AllocateDirectConnectVirtualInterfaceRequest)-AllocateDirectConnectVirtualInterfaceResponse)&ApplyDirectConnectConnectionLoaRequest)'ApplyDirectConnectConnectionLoaResponse);AssociateCenForDescribeDirectConnectGatewayAttributesOutput)2AssociateCenForDescribeDirectConnectGatewaysOutput);AssociateEicForDescribeDirectConnectGatewayAttributesOutput)2AssociateEicForDescribeDirectConnectGatewaysOutput) BgpPeerForDescribeBgpPeersOutput)+ConfirmDirectConnectVirtualInterfaceRequest),ConfirmDirectConnectVirtualInterfaceResponse)CreateBgpPeerRequest)CreateBgpPeerResponse))CreateDirectConnectConnectionOrderRequest)*CreateDirectConnectConnectionOrderResponse)$CreateDirectConnectConnectionRequest)%CreateDirectConnectConnectionResponse)!CreateDirectConnectGatewayRequest)"CreateDirectConnectGatewayResponse)&CreateDirectConnectGatewayRouteRequest)'CreateDirectConnectGatewayRouteResponse)*CreateDirectConnectTrafficQosPolicyRequest)+CreateDirectConnectTrafficQosPolicyResponse))CreateDirectConnectTrafficQosQueueRequest)*CreateDirectConnectTrafficQosQueueResponse)(CreateDirectConnectTrafficQosRuleRequest))CreateDirectConnectTrafficQosRuleResponse)*CreateDirectConnectVirtualInterfaceRequest)+CreateDirectConnectVirtualInterfaceResponse)DeleteBgpPeerRequest)DeleteBgpPeerResponse)$DeleteDirectConnectConnectionRequest)%DeleteDirectConnectConnectionResponse)!DeleteDirectConnectGatewayRequest)"DeleteDirectConnectGatewayResponse)&DeleteDirectConnectGatewayRouteRequest)'DeleteDirectConnectGatewayRouteResponse)*DeleteDirectConnectTrafficQosPolicyRequest)+DeleteDirectConnectTrafficQosPolicyResponse))DeleteDirectConnectTrafficQosQueueRequest)*DeleteDirectConnectTrafficQosQueueResponse)(DeleteDirectConnectTrafficQosRuleRequest))DeleteDirectConnectTrafficQosRuleResponse)*DeleteDirectConnectVirtualInterfaceRequest)+DeleteDirectConnectVirtualInterfaceResponse) DescribeBgpPeerAttributesRequest)!DescribeBgpPeerAttributesResponse)DescribeBgpPeersRequest)DescribeBgpPeersResponse)(DescribeDirectConnectAccessPointsRequest))DescribeDirectConnectAccessPointsResponse)0DescribeDirectConnectConnectionAttributesRequest)1DescribeDirectConnectConnectionAttributesResponse)3DescribeDirectConnectConnectionLoaAttributesRequest)4DescribeDirectConnectConnectionLoaAttributesResponse)'DescribeDirectConnectConnectionsRequest)(DescribeDirectConnectConnectionsResponse)-DescribeDirectConnectGatewayAttributesRequest).DescribeDirectConnectGatewayAttributesResponse)2DescribeDirectConnectGatewayRouteAttributesRequest)3DescribeDirectConnectGatewayRouteAttributesResponse))DescribeDirectConnectGatewayRoutesRequest)*DescribeDirectConnectGatewayRoutesResponse)$DescribeDirectConnectGatewaysRequest)%DescribeDirectConnectGatewaysResponse).DescribeDirectConnectTrafficQosPoliciesRequest)/DescribeDirectConnectTrafficQosPoliciesResponse),DescribeDirectConnectTrafficQosQueuesRequest)-DescribeDirectConnectTrafficQosQueuesResponse)+DescribeDirectConnectTrafficQosRulesRequest),DescribeDirectConnectTrafficQosRulesResponse)6DescribeDirectConnectVirtualInterfaceAttributesRequest)7DescribeDirectConnectVirtualInterfaceAttributesResponse)-DescribeDirectConnectVirtualInterfacesRequest).DescribeDirectConnectVirtualInterfacesResponse)BDirectConnectAccessPointForDescribeDirectConnectAccessPointsOutput)@DirectConnectConnectionForDescribeDirectConnectConnectionsOutput):DirectConnectGatewayForDescribeDirectConnectGatewaysOutput)DDirectConnectGatewayRouteForDescribeDirectConnectGatewayRoutesOutput)MDirectConnectTrafficQosPolicyForDescribeDirectConnectTrafficQosPoliciesOutput)JDirectConnectTrafficQosQueueForDescribeDirectConnectTrafficQosQueuesOutput)HDirectConnectTrafficQosRuleForDescribeDirectConnectTrafficQosRulesOutput)/EngineerForApplyDirectConnectConnectionLoaInput)=EngineerForDescribeDirectConnectConnectionLoaAttributesOutput):EngineerForModifyDirectConnectConnectionLoaAttributesInput)ListTagsForResourcesRequest)ListTagsForResourcesResponse)ModifyBgpPeerAttributesRequest)ModifyBgpPeerAttributesResponse).ModifyDirectConnectConnectionAttributesRequest)/ModifyDirectConnectConnectionAttributesResponse)1ModifyDirectConnectConnectionLoaAttributesRequest)2ModifyDirectConnectConnectionLoaAttributesResponse)+ModifyDirectConnectGatewayAttributesRequest),ModifyDirectConnectGatewayAttributesResponse)4ModifyDirectConnectTrafficQosPolicyAttributesRequest)5ModifyDirectConnectTrafficQosPolicyAttributesResponse)3ModifyDirectConnectTrafficQosQueueAttributesRequest)4ModifyDirectConnectTrafficQosQueueAttributesResponse)2ModifyDirectConnectTrafficQosRuleAttributesRequest)3ModifyDirectConnectTrafficQosRuleAttributesResponse)4ModifyDirectConnectVirtualInterfaceAttributesRequest)5ModifyDirectConnectVirtualInterfaceAttributesResponse)(ResourceTagForListTagsForResourcesOutput)1TagFilterForDescribeDirectConnectConnectionsInput).TagFilterForDescribeDirectConnectGatewaysInput)7TagFilterForDescribeDirectConnectVirtualInterfacesInput)%TagFilterForListTagsForResourcesInput)0TagForAllocateDirectConnectVirtualInterfaceInput)(TagForCreateDirectConnectConnectionInput)%TagForCreateDirectConnectGatewayInput).TagForCreateDirectConnectVirtualInterfaceInput)5TagForDescribeDirectConnectConnectionAttributesOutput),TagForDescribeDirectConnectConnectionsOutput)2TagForDescribeDirectConnectGatewayAttributesOutput))TagForDescribeDirectConnectGatewaysOutput);TagForDescribeDirectConnectVirtualInterfaceAttributesOutput)2TagForDescribeDirectConnectVirtualInterfacesOutput)TagForTagResourcesInput)TagResourcesRequest)TagResourcesResponse)UntagResourcesRequest)UntagResourcesResponse)?VirtualInterfaceForDescribeDirectConnectVirtualInterfacesOutputN)__doc__
__future__r   Svolcenginesdkdirectconnect.models.allocate_direct_connect_virtual_interface_requestr   Tvolcenginesdkdirectconnect.models.allocate_direct_connect_virtual_interface_responser   Mvolcenginesdkdirectconnect.models.apply_direct_connect_connection_loa_requestr   Nvolcenginesdkdirectconnect.models.apply_direct_connect_connection_loa_responser   evolcenginesdkdirectconnect.models.associate_cen_for_describe_direct_connect_gateway_attributes_outputr   [volcenginesdkdirectconnect.models.associate_cen_for_describe_direct_connect_gateways_outputr	   evolcenginesdkdirectconnect.models.associate_eic_for_describe_direct_connect_gateway_attributes_outputr
   [volcenginesdkdirectconnect.models.associate_eic_for_describe_direct_connect_gateways_outputr   Hvolcenginesdkdirectconnect.models.bgp_peer_for_describe_bgp_peers_outputr   Rvolcenginesdkdirectconnect.models.confirm_direct_connect_virtual_interface_requestr   Svolcenginesdkdirectconnect.models.confirm_direct_connect_virtual_interface_responser   9volcenginesdkdirectconnect.models.create_bgp_peer_requestr   :volcenginesdkdirectconnect.models.create_bgp_peer_responser   Pvolcenginesdkdirectconnect.models.create_direct_connect_connection_order_requestr   Qvolcenginesdkdirectconnect.models.create_direct_connect_connection_order_responser   Jvolcenginesdkdirectconnect.models.create_direct_connect_connection_requestr   Kvolcenginesdkdirectconnect.models.create_direct_connect_connection_responser   Gvolcenginesdkdirectconnect.models.create_direct_connect_gateway_requestr   Hvolcenginesdkdirectconnect.models.create_direct_connect_gateway_responser   Mvolcenginesdkdirectconnect.models.create_direct_connect_gateway_route_requestr   Nvolcenginesdkdirectconnect.models.create_direct_connect_gateway_route_responser   Rvolcenginesdkdirectconnect.models.create_direct_connect_traffic_qos_policy_requestr   Svolcenginesdkdirectconnect.models.create_direct_connect_traffic_qos_policy_responser   Qvolcenginesdkdirectconnect.models.create_direct_connect_traffic_qos_queue_requestr   Rvolcenginesdkdirectconnect.models.create_direct_connect_traffic_qos_queue_responser   Pvolcenginesdkdirectconnect.models.create_direct_connect_traffic_qos_rule_requestr   Qvolcenginesdkdirectconnect.models.create_direct_connect_traffic_qos_rule_responser   Qvolcenginesdkdirectconnect.models.create_direct_connect_virtual_interface_requestr   Rvolcenginesdkdirectconnect.models.create_direct_connect_virtual_interface_responser    9volcenginesdkdirectconnect.models.delete_bgp_peer_requestr!   :volcenginesdkdirectconnect.models.delete_bgp_peer_responser"   Jvolcenginesdkdirectconnect.models.delete_direct_connect_connection_requestr#   Kvolcenginesdkdirectconnect.models.delete_direct_connect_connection_responser$   Gvolcenginesdkdirectconnect.models.delete_direct_connect_gateway_requestr%   Hvolcenginesdkdirectconnect.models.delete_direct_connect_gateway_responser&   Mvolcenginesdkdirectconnect.models.delete_direct_connect_gateway_route_requestr'   Nvolcenginesdkdirectconnect.models.delete_direct_connect_gateway_route_responser(   Rvolcenginesdkdirectconnect.models.delete_direct_connect_traffic_qos_policy_requestr)   Svolcenginesdkdirectconnect.models.delete_direct_connect_traffic_qos_policy_responser*   Qvolcenginesdkdirectconnect.models.delete_direct_connect_traffic_qos_queue_requestr+   Rvolcenginesdkdirectconnect.models.delete_direct_connect_traffic_qos_queue_responser,   Pvolcenginesdkdirectconnect.models.delete_direct_connect_traffic_qos_rule_requestr-   Qvolcenginesdkdirectconnect.models.delete_direct_connect_traffic_qos_rule_responser.   Qvolcenginesdkdirectconnect.models.delete_direct_connect_virtual_interface_requestr/   Rvolcenginesdkdirectconnect.models.delete_direct_connect_virtual_interface_responser0   Fvolcenginesdkdirectconnect.models.describe_bgp_peer_attributes_requestr1   Gvolcenginesdkdirectconnect.models.describe_bgp_peer_attributes_responser2   <volcenginesdkdirectconnect.models.describe_bgp_peers_requestr3   =volcenginesdkdirectconnect.models.describe_bgp_peers_responser4   Ovolcenginesdkdirectconnect.models.describe_direct_connect_access_points_requestr5   Pvolcenginesdkdirectconnect.models.describe_direct_connect_access_points_responser6   Wvolcenginesdkdirectconnect.models.describe_direct_connect_connection_attributes_requestr7   Xvolcenginesdkdirectconnect.models.describe_direct_connect_connection_attributes_responser8   [volcenginesdkdirectconnect.models.describe_direct_connect_connection_loa_attributes_requestr9   \volcenginesdkdirectconnect.models.describe_direct_connect_connection_loa_attributes_responser:   Mvolcenginesdkdirectconnect.models.describe_direct_connect_connections_requestr;   Nvolcenginesdkdirectconnect.models.describe_direct_connect_connections_responser<   Tvolcenginesdkdirectconnect.models.describe_direct_connect_gateway_attributes_requestr=   Uvolcenginesdkdirectconnect.models.describe_direct_connect_gateway_attributes_responser>   Zvolcenginesdkdirectconnect.models.describe_direct_connect_gateway_route_attributes_requestr?   [volcenginesdkdirectconnect.models.describe_direct_connect_gateway_route_attributes_responser@   Pvolcenginesdkdirectconnect.models.describe_direct_connect_gateway_routes_requestrA   Qvolcenginesdkdirectconnect.models.describe_direct_connect_gateway_routes_responserB   Jvolcenginesdkdirectconnect.models.describe_direct_connect_gateways_requestrC   Kvolcenginesdkdirectconnect.models.describe_direct_connect_gateways_responserD   Vvolcenginesdkdirectconnect.models.describe_direct_connect_traffic_qos_policies_requestrE   Wvolcenginesdkdirectconnect.models.describe_direct_connect_traffic_qos_policies_responserF   Tvolcenginesdkdirectconnect.models.describe_direct_connect_traffic_qos_queues_requestrG   Uvolcenginesdkdirectconnect.models.describe_direct_connect_traffic_qos_queues_responserH   Svolcenginesdkdirectconnect.models.describe_direct_connect_traffic_qos_rules_requestrI   Tvolcenginesdkdirectconnect.models.describe_direct_connect_traffic_qos_rules_responserJ   ^volcenginesdkdirectconnect.models.describe_direct_connect_virtual_interface_attributes_requestrK   _volcenginesdkdirectconnect.models.describe_direct_connect_virtual_interface_attributes_responserL   Tvolcenginesdkdirectconnect.models.describe_direct_connect_virtual_interfaces_requestrM   Uvolcenginesdkdirectconnect.models.describe_direct_connect_virtual_interfaces_responserN   nvolcenginesdkdirectconnect.models.direct_connect_access_point_for_describe_direct_connect_access_points_outputrO   jvolcenginesdkdirectconnect.models.direct_connect_connection_for_describe_direct_connect_connections_outputrP   dvolcenginesdkdirectconnect.models.direct_connect_gateway_for_describe_direct_connect_gateways_outputrQ   pvolcenginesdkdirectconnect.models.direct_connect_gateway_route_for_describe_direct_connect_gateway_routes_outputrR   (volcenginesdkdirectconnect.models.modelsrS   rT   vvolcenginesdkdirectconnect.models.direct_connect_traffic_qos_rule_for_describe_direct_connect_traffic_qos_rules_outputrU   Xvolcenginesdkdirectconnect.models.engineer_for_apply_direct_connect_connection_loa_inputrV   gvolcenginesdkdirectconnect.models.engineer_for_describe_direct_connect_connection_loa_attributes_outputrW   dvolcenginesdkdirectconnect.models.engineer_for_modify_direct_connect_connection_loa_attributes_inputrX   Avolcenginesdkdirectconnect.models.list_tags_for_resources_requestrY   Bvolcenginesdkdirectconnect.models.list_tags_for_resources_responserZ   Dvolcenginesdkdirectconnect.models.modify_bgp_peer_attributes_requestr[   Evolcenginesdkdirectconnect.models.modify_bgp_peer_attributes_responser\   Uvolcenginesdkdirectconnect.models.modify_direct_connect_connection_attributes_requestr]   Vvolcenginesdkdirectconnect.models.modify_direct_connect_connection_attributes_responser^   Yvolcenginesdkdirectconnect.models.modify_direct_connect_connection_loa_attributes_requestr_   Zvolcenginesdkdirectconnect.models.modify_direct_connect_connection_loa_attributes_responser`   Rvolcenginesdkdirectconnect.models.modify_direct_connect_gateway_attributes_requestra   Svolcenginesdkdirectconnect.models.modify_direct_connect_gateway_attributes_responserb   ]volcenginesdkdirectconnect.models.modify_direct_connect_traffic_qos_policy_attributes_requestrc   ^volcenginesdkdirectconnect.models.modify_direct_connect_traffic_qos_policy_attributes_responserd   \volcenginesdkdirectconnect.models.modify_direct_connect_traffic_qos_queue_attributes_requestre   ]volcenginesdkdirectconnect.models.modify_direct_connect_traffic_qos_queue_attributes_responserf   [volcenginesdkdirectconnect.models.modify_direct_connect_traffic_qos_rule_attributes_requestrg   \volcenginesdkdirectconnect.models.modify_direct_connect_traffic_qos_rule_attributes_responserh   \volcenginesdkdirectconnect.models.modify_direct_connect_virtual_interface_attributes_requestri   ]volcenginesdkdirectconnect.models.modify_direct_connect_virtual_interface_attributes_responserj   Qvolcenginesdkdirectconnect.models.resource_tag_for_list_tags_for_resources_outputrk   Zvolcenginesdkdirectconnect.models.tag_filter_for_describe_direct_connect_connections_inputrl   Wvolcenginesdkdirectconnect.models.tag_filter_for_describe_direct_connect_gateways_inputrm   avolcenginesdkdirectconnect.models.tag_filter_for_describe_direct_connect_virtual_interfaces_inputrn   Nvolcenginesdkdirectconnect.models.tag_filter_for_list_tags_for_resources_inputro   Yvolcenginesdkdirectconnect.models.tag_for_allocate_direct_connect_virtual_interface_inputrp   Pvolcenginesdkdirectconnect.models.tag_for_create_direct_connect_connection_inputrq   Mvolcenginesdkdirectconnect.models.tag_for_create_direct_connect_gateway_inputrr   Wvolcenginesdkdirectconnect.models.tag_for_create_direct_connect_virtual_interface_inputrs   ^volcenginesdkdirectconnect.models.tag_for_describe_direct_connect_connection_attributes_outputrt   Tvolcenginesdkdirectconnect.models.tag_for_describe_direct_connect_connections_outputru   [volcenginesdkdirectconnect.models.tag_for_describe_direct_connect_gateway_attributes_outputrv   Qvolcenginesdkdirectconnect.models.tag_for_describe_direct_connect_gateways_outputrw   evolcenginesdkdirectconnect.models.tag_for_describe_direct_connect_virtual_interface_attributes_outputrx   [volcenginesdkdirectconnect.models.tag_for_describe_direct_connect_virtual_interfaces_outputry   =volcenginesdkdirectconnect.models.tag_for_tag_resources_inputrz   7volcenginesdkdirectconnect.models.tag_resources_requestr{   8volcenginesdkdirectconnect.models.tag_resources_responser|   9volcenginesdkdirectconnect.models.untag_resources_requestr}   :volcenginesdkdirectconnect.models.untag_resources_responser~   ivolcenginesdkdirectconnect.models.virtual_interface_for_describe_direct_connect_virtual_interfaces_outputr        s/root/.openclaw/workspace/.venvs/ark-sdk/lib/python3.11/site-packages/volcenginesdkdirectconnect/models/__init__.py<module>r      s    ' & & & & & M  M  M  M  M  M O  O  O  O  O  O A  A  A  A  A  A C  C  C  C  C  C n  n  n  n  n  n [  [  [  [  [  [ n  n  n  n  n  n [  [  [  [  [  [ u u u u u u K  K  K  K  K  K M  M  M  M  M  M Z Z Z Z Z Z \ \ \ \ \ \ G  G  G  G  G  G I  I  I  I  I  I { { { { { { } } } } } } u u u u u u w w w w w w A  A  A  A  A  A C  C  C  C  C  C J  J  J  J  J  J L  L  L  L  L  L H  H  H  H  H  H J  J  J  J  J  J F  F  F  F  F  F H  H  H  H  H  H I  I  I  I  I  I K  K  K  K  K  K Z Z Z Z Z Z \ \ \ \ \ \ { { { { { { } } } } } } u u u u u u w w w w w w A  A  A  A  A  A C  C  C  C  C  C J  J  J  J  J  J L  L  L  L  L  L H  H  H  H  H  H J  J  J  J  J  J F  F  F  F  F  F H  H  H  H  H  H I  I  I  I  I  I K  K  K  K  K  K s s s s s s u u u u u u ` ` ` ` ` ` b b b b b b E  E  E  E  E  E G  G  G  G  G  G U  U  U  U  U  U W  W  W  W  W  W \  \  \  \  \  \ ^  ^  ^  ^  ^  ^ B  B  B  B  B  B D  D  D  D  D  D O  O  O  O  O  O Q  Q  Q  Q  Q  Q Z  Z  Z  Z  Z  Z \  \  \  \  \  \ G  G  G  G  G  G I  I  I  I  I  I { { { { { { } } } } } } R  R  R  R  R  R T  T  T  T  T  T N  N  N  N  N  N P  P  P  P  P  P L  L  L  L  L  L N  N  N  N  N  N b  b  b  b  b  b d  d  d  d  d  d O  O  O  O  O  O Q  Q  Q  Q  Q  Q ~  ~  ~  ~  ~  ~ x  x  x  x  x  x l  l  l  l  l  l B  B  B  B  B  B C  C  C  C  C  C       L  L  L  L  L  L U  U  U  U  U  U r  r  r  r  r  r l  l  l  l  l  l i i i i i i k k k k k k o o o o o o q q q q q q Q  Q  Q  Q  Q  Q S  S  S  S  S  S X  X  X  X  X  X Z  Z  Z  Z  Z  Z K  K  K  K  K  K M  M  M  M  M  M _  _  _  _  _  _ a  a  a  a  a  a ]  ]  ]  ]  ]  ] _  _  _  _  _  _ [  [  [  [  [  [ ]  ]  ]  ]  ]  ] ^  ^  ^  ^  ^  ^ `  `  `  `  `  ` G  G  G  G  G  G Y  Y  Y  Y  Y  Y S  S  S  S  S  S f  f  f  f  f  f A  A  A  A  A  A W  W  W  W  W  W F  F  F  F  F  F       S  S  S  S  S  S a  a  a  a  a  a N  N  N  N  N  N [  [  [  [  [  [ H  H  H  H  H  H n  n  n  n  n  n [  [  [  [  [  [ a a a a a a W W W W W W Y Y Y Y Y Y [ [ [ [ [ [ ] ] ] ] ] ] v  v  v  v  v  v  v  vr   