TSMasterAPI 2.3.2__tar.gz → 2.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/PKG-INFO +1 -1
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI/TSAPI.py +173 -8
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI/TSCallback.py +29 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI/TSStruct.py +16 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI.egg-info/PKG-INFO +1 -1
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/setup.py +1 -1
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/README.rst +0 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI/TSDirver.py +0 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI/TSEnum.py +0 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI/TSFibex_parse.py +0 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI/TSMasterAPI.py +0 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI/__init__.py +0 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI.egg-info/SOURCES.txt +0 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI.egg-info/dependency_links.txt +0 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/TSMasterAPI.egg-info/top_level.txt +0 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/license.txt +0 -0
- {TSMasterAPI-2.3.2 → TSMasterAPI-2.3.4}/setup.cfg +0 -0
@@ -144,13 +144,15 @@ tsapp_set_mapping.argtypes = [PLIBTSMapping]
|
|
144
144
|
#arg[0] AAppName
|
145
145
|
#arg[1] AAppChannelType
|
146
146
|
#arg[2] AAppChannel
|
147
|
-
#arg[3]
|
148
|
-
#arg[4]
|
149
|
-
#arg[5]
|
150
|
-
#arg[6]
|
147
|
+
#arg[3] AHardwareName
|
148
|
+
#arg[4] AHardwareType
|
149
|
+
#arg[5] AHardwareSubType
|
150
|
+
#arg[6] AHardwareIndex
|
151
|
+
#arg[7] AHardwareChannel
|
152
|
+
#arg[8] AEnableMapping
|
151
153
|
tsapp_set_mapping_verbose = dll.tsapp_set_mapping_verbose
|
152
154
|
tsapp_set_mapping_verbose.restype = s32
|
153
|
-
tsapp_set_mapping_verbose.argtypes = [pchar,TLIBApplicationChannelType,s32,TLIBBusToolDeviceType,s32,s32,s32]
|
155
|
+
tsapp_set_mapping_verbose.argtypes = [pchar,TLIBApplicationChannelType,s32,pchar,TLIBBusToolDeviceType,s32,s32,s32,cbool]
|
154
156
|
|
155
157
|
#arg[0] AMapping
|
156
158
|
tsapp_get_mapping = dll.tsapp_get_mapping
|
@@ -271,9 +273,10 @@ tsapp_get_hw_info_by_index.argtypes = [s32,PLIBHWInfo]
|
|
271
273
|
#arg[4] ADeviceNameBuffer
|
272
274
|
#arg[5] ADeviceNameBufferSize
|
273
275
|
#arg[6] ASerialStringBuffer
|
276
|
+
#arg[7] ASerialStringBufferSize
|
274
277
|
tsapp_get_hw_info_by_index_verbose = dll.tsapp_get_hw_info_by_index_verbose
|
275
278
|
tsapp_get_hw_info_by_index_verbose.restype = s32
|
276
|
-
tsapp_get_hw_info_by_index_verbose.argtypes = [s32,PLIBBusToolDeviceType,pchar,s32,pchar,s32,pchar]
|
279
|
+
tsapp_get_hw_info_by_index_verbose.argtypes = [s32,PLIBBusToolDeviceType,pchar,s32,pchar,s32,pchar,s32]
|
277
280
|
|
278
281
|
#arg[0] AScanTOSUN
|
279
282
|
#arg[1] AScanVector
|
@@ -2743,6 +2746,28 @@ tssocket_remove_device = dll.tssocket_remove_device
|
|
2743
2746
|
tssocket_remove_device.restype = s32
|
2744
2747
|
tssocket_remove_device.argtypes = [s32,pu8,Pip4_addr_t]
|
2745
2748
|
|
2749
|
+
#arg[0] ANetworkIndex
|
2750
|
+
#arg[1] macaddr
|
2751
|
+
#arg[2] ipaddr
|
2752
|
+
#arg[3] netmask
|
2753
|
+
#arg[4] gateway
|
2754
|
+
#arg[5] mtu
|
2755
|
+
tssocket_add_device_ex = dll.tssocket_add_device_ex
|
2756
|
+
tssocket_add_device_ex.restype = s32
|
2757
|
+
tssocket_add_device_ex.argtypes = [s32,pchar,pchar,pchar,pchar,u16]
|
2758
|
+
|
2759
|
+
#arg[0] ANetworkIndex
|
2760
|
+
#arg[1] mac
|
2761
|
+
#arg[2] ipaddr
|
2762
|
+
tssocket_remove_device_ex = dll.tssocket_remove_device_ex
|
2763
|
+
tssocket_remove_device_ex.restype = s32
|
2764
|
+
tssocket_remove_device_ex.argtypes = [s32,pchar,pchar]
|
2765
|
+
|
2766
|
+
#arg[0] ANetworkIndex
|
2767
|
+
tssocket_get_errno = dll.tssocket_get_errno
|
2768
|
+
tssocket_get_errno.restype = s32
|
2769
|
+
tssocket_get_errno.argtypes = [s32]
|
2770
|
+
|
2746
2771
|
#arg[0] ANetworkIndex
|
2747
2772
|
tssocket_dhcp_start = dll.tssocket_dhcp_start
|
2748
2773
|
tssocket_dhcp_start.restype = s32
|
@@ -2834,6 +2859,12 @@ tssocket_close = dll.tssocket_close
|
|
2834
2859
|
tssocket_close.restype = s32
|
2835
2860
|
tssocket_close.argtypes = [s32]
|
2836
2861
|
|
2862
|
+
#arg[0] s
|
2863
|
+
#arg[1] AForceExitTimeWait
|
2864
|
+
tssocket_close_v2 = dll.tssocket_close_v2
|
2865
|
+
tssocket_close_v2.restype = s32
|
2866
|
+
tssocket_close_v2.argtypes = [s32,s32]
|
2867
|
+
|
2837
2868
|
#arg[0] s
|
2838
2869
|
#arg[1] name
|
2839
2870
|
#arg[2] namelen
|
@@ -2967,6 +2998,12 @@ tssocket_tcp_close = dll.tssocket_tcp_close
|
|
2967
2998
|
tssocket_tcp_close.restype = s32
|
2968
2999
|
tssocket_tcp_close.argtypes = [s32]
|
2969
3000
|
|
3001
|
+
#arg[0] s
|
3002
|
+
#arg[1] AForceExitTimeWait
|
3003
|
+
tssocket_tcp_close_v2 = dll.tssocket_tcp_close_v2
|
3004
|
+
tssocket_tcp_close_v2.restype = s32
|
3005
|
+
tssocket_tcp_close_v2.argtypes = [s32,s32]
|
3006
|
+
|
2970
3007
|
#arg[0] s
|
2971
3008
|
#arg[1] AData
|
2972
3009
|
#arg[2] ASize
|
@@ -3020,13 +3057,13 @@ tssocket_udp_sendto_v2.argtypes = [s32,u32,u16,pu8,s32]
|
|
3020
3057
|
#arg[1] AEvent
|
3021
3058
|
tssocket_register_tcp_listen_event = dll.tssocket_register_tcp_listen_event
|
3022
3059
|
tssocket_register_tcp_listen_event.restype = s32
|
3023
|
-
tssocket_register_tcp_listen_event.argtypes = [s32,
|
3060
|
+
tssocket_register_tcp_listen_event.argtypes = [s32,TSSocketListenEvent_Win32]
|
3024
3061
|
|
3025
3062
|
#arg[0] s
|
3026
3063
|
#arg[1] AEvent
|
3027
3064
|
tssocket_unregister_tcp_listen_event = dll.tssocket_unregister_tcp_listen_event
|
3028
3065
|
tssocket_unregister_tcp_listen_event.restype = s32
|
3029
|
-
tssocket_unregister_tcp_listen_event.argtypes = [s32,
|
3066
|
+
tssocket_unregister_tcp_listen_event.argtypes = [s32,TSSocketListenEvent_Win32]
|
3030
3067
|
|
3031
3068
|
#arg[0] s
|
3032
3069
|
tssocket_unregister_tcp_listen_events = dll.tssocket_unregister_tcp_listen_events
|
@@ -3152,6 +3189,23 @@ tssocket_unregister_udp_receivefrom_eventsv2 = dll.tssocket_unregister_udp_recei
|
|
3152
3189
|
tssocket_unregister_udp_receivefrom_eventsv2.restype = s32
|
3153
3190
|
tssocket_unregister_udp_receivefrom_eventsv2.argtypes = [s32]
|
3154
3191
|
|
3192
|
+
#arg[0] s
|
3193
|
+
#arg[1] AEvent
|
3194
|
+
tssocket_register_udp_receivefrom_eventv3 = dll.tssocket_register_udp_receivefrom_eventv3
|
3195
|
+
tssocket_register_udp_receivefrom_eventv3.restype = s32
|
3196
|
+
tssocket_register_udp_receivefrom_eventv3.argtypes = [s32,TSSocketReceiveEventV3_Win32]
|
3197
|
+
|
3198
|
+
#arg[0] s
|
3199
|
+
#arg[1] AEvent
|
3200
|
+
tssocket_unregister_udp_receivefrom_eventv3 = dll.tssocket_unregister_udp_receivefrom_eventv3
|
3201
|
+
tssocket_unregister_udp_receivefrom_eventv3.restype = s32
|
3202
|
+
tssocket_unregister_udp_receivefrom_eventv3.argtypes = [s32,TSSocketReceiveEventV3_Win32]
|
3203
|
+
|
3204
|
+
#arg[0] s
|
3205
|
+
tssocket_unregister_udp_receivefrom_eventsv3 = dll.tssocket_unregister_udp_receivefrom_eventsv3
|
3206
|
+
tssocket_unregister_udp_receivefrom_eventsv3.restype = s32
|
3207
|
+
tssocket_unregister_udp_receivefrom_eventsv3.argtypes = [s32]
|
3208
|
+
|
3155
3209
|
#arg[0] s
|
3156
3210
|
#arg[1] AEvent
|
3157
3211
|
tssocket_register_tcp_receive_eventv2 = dll.tssocket_register_tcp_receive_eventv2
|
@@ -4599,3 +4653,114 @@ end_system_message_log = dll.end_system_message_log
|
|
4599
4653
|
end_system_message_log.restype = s32
|
4600
4654
|
end_system_message_log.argtypes = [ppchar]
|
4601
4655
|
|
4656
|
+
#arg[0] ARpcName
|
4657
|
+
#arg[1] ABufferSizeBytes
|
4658
|
+
#arg[2] ARxEvent
|
4659
|
+
#arg[3] AHandle
|
4660
|
+
rpc_create_server = dll.rpc_create_server
|
4661
|
+
rpc_create_server.restype = s32
|
4662
|
+
rpc_create_server.argtypes = [pchar,size_t,TOnRpcData,psize_t]
|
4663
|
+
|
4664
|
+
#arg[0] AHandle
|
4665
|
+
#arg[1] AActivate
|
4666
|
+
rpc_activate_server = dll.rpc_activate_server
|
4667
|
+
rpc_activate_server.restype = s32
|
4668
|
+
rpc_activate_server.argtypes = [size_t,cbool]
|
4669
|
+
|
4670
|
+
#arg[0] AHandle
|
4671
|
+
rpc_delete_server = dll.rpc_delete_server
|
4672
|
+
rpc_delete_server.restype = s32
|
4673
|
+
rpc_delete_server.argtypes = [size_t]
|
4674
|
+
|
4675
|
+
#arg[0] AHandle
|
4676
|
+
#arg[1] AAddr
|
4677
|
+
#arg[2] ASizeBytes
|
4678
|
+
rpc_server_write_sync = dll.rpc_server_write_sync
|
4679
|
+
rpc_server_write_sync.restype = s32
|
4680
|
+
rpc_server_write_sync.argtypes = [size_t,pu8,size_t]
|
4681
|
+
|
4682
|
+
#arg[0] ARpcName
|
4683
|
+
#arg[1] ABufferSizeBytes
|
4684
|
+
#arg[2] AHandle
|
4685
|
+
rpc_create_client = dll.rpc_create_client
|
4686
|
+
rpc_create_client.restype = s32
|
4687
|
+
rpc_create_client.argtypes = [pchar,size_t,psize_t]
|
4688
|
+
|
4689
|
+
#arg[0] AHandle
|
4690
|
+
#arg[1] AActivate
|
4691
|
+
rpc_activate_client = dll.rpc_activate_client
|
4692
|
+
rpc_activate_client.restype = s32
|
4693
|
+
rpc_activate_client.argtypes = [size_t,cbool]
|
4694
|
+
|
4695
|
+
#arg[0] AHandle
|
4696
|
+
rpc_delete_client = dll.rpc_delete_client
|
4697
|
+
rpc_delete_client.restype = s32
|
4698
|
+
rpc_delete_client.argtypes = [size_t]
|
4699
|
+
|
4700
|
+
#arg[0] AHandle
|
4701
|
+
#arg[1] AAddr
|
4702
|
+
#arg[2] ASizeBytes
|
4703
|
+
#arg[3] ATimeOutMs
|
4704
|
+
rpc_client_transmit_sync = dll.rpc_client_transmit_sync
|
4705
|
+
rpc_client_transmit_sync.restype = s32
|
4706
|
+
rpc_client_transmit_sync.argtypes = [size_t,pu8,size_t,s32]
|
4707
|
+
|
4708
|
+
#arg[0] AHandle
|
4709
|
+
#arg[1] ASizeBytes
|
4710
|
+
#arg[2] AAddr
|
4711
|
+
#arg[3] ATimeOutMs
|
4712
|
+
rpc_client_receive_sync = dll.rpc_client_receive_sync
|
4713
|
+
rpc_client_receive_sync.restype = s32
|
4714
|
+
rpc_client_receive_sync.argtypes = [size_t,psize_t,pu8,s32]
|
4715
|
+
|
4716
|
+
#arg[0] AMasked
|
4717
|
+
mask_fpu_exceptions = dll.mask_fpu_exceptions
|
4718
|
+
mask_fpu_exceptions.restype = s32
|
4719
|
+
mask_fpu_exceptions.argtypes = [cbool]
|
4720
|
+
|
4721
|
+
#arg[0] AActivate
|
4722
|
+
rpc_tsmaster_activate_server = dll.rpc_tsmaster_activate_server
|
4723
|
+
rpc_tsmaster_activate_server.restype = s32
|
4724
|
+
rpc_tsmaster_activate_server.argtypes = [cbool]
|
4725
|
+
|
4726
|
+
#arg[0] ATSMasterAppName
|
4727
|
+
#arg[1] AHandle
|
4728
|
+
rpc_tsmaster_create_client = dll.rpc_tsmaster_create_client
|
4729
|
+
rpc_tsmaster_create_client.restype = s32
|
4730
|
+
rpc_tsmaster_create_client.argtypes = [pchar,psize_t]
|
4731
|
+
|
4732
|
+
#arg[0] AHandle
|
4733
|
+
#arg[1] AActivate
|
4734
|
+
rpc_tsmaster_activate_client = dll.rpc_tsmaster_activate_client
|
4735
|
+
rpc_tsmaster_activate_client.restype = s32
|
4736
|
+
rpc_tsmaster_activate_client.argtypes = [size_t,cbool]
|
4737
|
+
|
4738
|
+
#arg[0] AHandle
|
4739
|
+
rpc_tsmaster_delete_client = dll.rpc_tsmaster_delete_client
|
4740
|
+
rpc_tsmaster_delete_client.restype = s32
|
4741
|
+
rpc_tsmaster_delete_client.argtypes = [size_t]
|
4742
|
+
|
4743
|
+
#arg[0] AHandle
|
4744
|
+
rpc_tsmaster_cmd_start_simulation = dll.rpc_tsmaster_cmd_start_simulation
|
4745
|
+
rpc_tsmaster_cmd_start_simulation.restype = s32
|
4746
|
+
rpc_tsmaster_cmd_start_simulation.argtypes = [size_t]
|
4747
|
+
|
4748
|
+
#arg[0] AHandle
|
4749
|
+
rpc_tsmaster_cmd_stop_simulation = dll.rpc_tsmaster_cmd_stop_simulation
|
4750
|
+
rpc_tsmaster_cmd_stop_simulation.restype = s32
|
4751
|
+
rpc_tsmaster_cmd_stop_simulation.argtypes = [size_t]
|
4752
|
+
|
4753
|
+
#arg[0] AHandle
|
4754
|
+
#arg[1] ACompleteName
|
4755
|
+
#arg[2] AValue
|
4756
|
+
rpc_tsmaster_cmd_write_system_var = dll.rpc_tsmaster_cmd_write_system_var
|
4757
|
+
rpc_tsmaster_cmd_write_system_var.restype = s32
|
4758
|
+
rpc_tsmaster_cmd_write_system_var.argtypes = [size_t,pchar,pchar]
|
4759
|
+
|
4760
|
+
#arg[0] AHandle
|
4761
|
+
#arg[1] AAddr
|
4762
|
+
#arg[2] ASizeBytes
|
4763
|
+
rpc_tsmaster_cmd_transfer_memory = dll.rpc_tsmaster_cmd_transfer_memory
|
4764
|
+
rpc_tsmaster_cmd_transfer_memory.restype = s32
|
4765
|
+
rpc_tsmaster_cmd_transfer_memory.argtypes = [size_t,pu8,size_t]
|
4766
|
+
|
@@ -32,6 +32,9 @@ TFirmwareUpdateCallback = WINFUNCTYPE(None,pvoid,u32,single)
|
|
32
32
|
TOnIoIPData = WINFUNCTYPE(None,ps32,s32)
|
33
33
|
# Arg[0] APointer
|
34
34
|
# Arg[1] ASize
|
35
|
+
TOnRpcData = WINFUNCTYPE(None,ps32,size_t)
|
36
|
+
# Arg[0] APointer
|
37
|
+
# Arg[1] ASize
|
35
38
|
TOnIoIPData_API = WINFUNCTYPE(None,ps32,s32)
|
36
39
|
# Arg[0] AIPAddress
|
37
40
|
# Arg[1] APort
|
@@ -63,6 +66,11 @@ TLIBCheckResult = WINFUNCTYPE(cbool,)
|
|
63
66
|
TLIBOnSysVarChange = WINFUNCTYPE(None,pchar)
|
64
67
|
# Arg[0] AObj
|
65
68
|
# Arg[1] ASocket
|
69
|
+
# Arg[2] AClientSocket
|
70
|
+
# Arg[3] AResult
|
71
|
+
TSSocketListenEvent = WINFUNCTYPE(None,ps32,s32,s32,s32)
|
72
|
+
# Arg[0] AObj
|
73
|
+
# Arg[1] ASocket
|
66
74
|
# Arg[2] AResult
|
67
75
|
TSSocketNotifyEvent = WINFUNCTYPE(None,ps32,s32,s32)
|
68
76
|
# Arg[0] AObj
|
@@ -83,11 +91,24 @@ TSSocketReceiveEventV2 = WINFUNCTYPE(None,ps32,s32,s32,pchar,pu8,s32)
|
|
83
91
|
# Arg[0] AObj
|
84
92
|
# Arg[1] ASocket
|
85
93
|
# Arg[2] AResult
|
94
|
+
# Arg[3] ADstEndPoint
|
95
|
+
# Arg[4] ASrcEndPoint
|
96
|
+
# Arg[5] AData
|
97
|
+
# Arg[6] ASize
|
98
|
+
TSSocketReceiveEventV3 = WINFUNCTYPE(None,ps32,s32,s32,pchar,pchar,pu8,s32)
|
99
|
+
# Arg[0] AObj
|
100
|
+
# Arg[1] ASocket
|
101
|
+
# Arg[2] AResult
|
86
102
|
# Arg[3] AData
|
87
103
|
# Arg[4] ASize
|
88
104
|
TSSocketTransmitEvent = WINFUNCTYPE(None,ps32,s32,s32,pu8,s32)
|
89
105
|
# Arg[0] AObj
|
90
106
|
# Arg[1] ASocket
|
107
|
+
# Arg[2] AClientSocket
|
108
|
+
# Arg[3] AResult
|
109
|
+
TSSocketListenEvent_Win32 = WINFUNCTYPE(None,ps32,s32,s32,s32)
|
110
|
+
# Arg[0] AObj
|
111
|
+
# Arg[1] ASocket
|
91
112
|
# Arg[2] AResult
|
92
113
|
TSSocketNotifyEvent_Win32 = WINFUNCTYPE(None,ps32,s32,s32)
|
93
114
|
# Arg[0] AObj
|
@@ -108,6 +129,14 @@ TSSocketReceiveEventV2_Win32 = WINFUNCTYPE(None,ps32,s32,s32,pchar,pu8,s32)
|
|
108
129
|
# Arg[0] AObj
|
109
130
|
# Arg[1] ASocket
|
110
131
|
# Arg[2] AResult
|
132
|
+
# Arg[3] ADstEndPoint
|
133
|
+
# Arg[4] ASrcEndPoint
|
134
|
+
# Arg[5] AData
|
135
|
+
# Arg[6] ASize
|
136
|
+
TSSocketReceiveEventV3_Win32 = WINFUNCTYPE(None,ps32,s32,s32,pchar,pchar,pu8,s32)
|
137
|
+
# Arg[0] AObj
|
138
|
+
# Arg[1] ASocket
|
139
|
+
# Arg[2] AResult
|
111
140
|
# Arg[3] AData
|
112
141
|
# Arg[4] ASize
|
113
142
|
TSSocketTransmitEvent_Win32 = WINFUNCTYPE(None,ps32,s32,s32,pu8,s32)
|
@@ -38,6 +38,7 @@ TObject = c_void_p
|
|
38
38
|
cbool = c_bool
|
39
39
|
pbool = POINTER(c_bool)
|
40
40
|
pvoid = c_void_p
|
41
|
+
ppvoid = POINTER(c_void_p)
|
41
42
|
size_t = c_size_t
|
42
43
|
psize_t = POINTER(size_t)
|
43
44
|
ppsize_t = POINTER(psize_t)
|
@@ -885,6 +886,21 @@ class Tts_msghdr(Structure):
|
|
885
886
|
]
|
886
887
|
Pts_msghdr = POINTER(Tts_msghdr)
|
887
888
|
|
889
|
+
class Tts_cmsghdr(Structure):
|
890
|
+
_pack_ = 1
|
891
|
+
_fields_ =[('cmsg_len',u32),
|
892
|
+
('cmsg_level',s32),
|
893
|
+
('cmsg_type',s32),
|
894
|
+
]
|
895
|
+
Pts_cmsghdr = POINTER(Tts_cmsghdr)
|
896
|
+
|
897
|
+
class Tts_in_pktinfo(Structure):
|
898
|
+
_pack_ = 1
|
899
|
+
_fields_ =[('ipi_ifindex',u32),
|
900
|
+
('ipi_addr',Ts_in_addr),
|
901
|
+
]
|
902
|
+
Pts_in_pktinfo = POINTER(Tts_in_pktinfo)
|
903
|
+
|
888
904
|
class Tts_pollfd(Structure):
|
889
905
|
_pack_ = 1
|
890
906
|
_fields_ =[('fd',s32),
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|