forked from xxz-888/PylaAi-XXZ
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmulti_instance_add_instance.bat
More file actions
345 lines (325 loc) · 25 KB
/
Copy pathmulti_instance_add_instance.bat
File metadata and controls
345 lines (325 loc) · 25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
@echo off
title PylaAi-XXZ Instance Manager
echo To start an instance: double-click multi_instance_start.bat
echo.
set "B64FILE=%TEMP%\pyla_b64_%RANDOM%.tmp"
set "PYFILE=%TEMP%\pyla_gui_%RANDOM%.py"
(
echo aW1wb3J0IG9zLCByZSwgc3lzLCB0a2ludGVyIGFzIHRrCmZyb20gdGtpbnRlciBpbXBvcnQgdHRr
echo LCBtZXNzYWdlYm94CmZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aAoKQkFTRV9ESVIgPSBQYXRoKHN5
echo cy5hcmd2WzFdKSBpZiBsZW4oc3lzLmFyZ3YpID4gMSBlbHNlIFBhdGguY3dkKCkKVE9NTF9QQVRI
echo ID0gQkFTRV9ESVIgLyAiY2ZnIiAvICJpbnN0YW5jZXMudG9tbCIKCk1VTFRJX0hFQURFUiA9ICJb
echo bXVsdGlfaW5zdGFuY2VdXG5lbmFibGVkID0gdHJ1ZVxuZGVmYXVsdF9pbnN0YW5jZSA9IFwiaW5z
echo dGFuY2UwXCJcbiIKCmRlZiBnZXRfcHJvZmlsZV9pbmRleChlbXVsYXRvciwgcG9ydCk6CiAgICBw
echo b3J0ID0gaW50KHBvcnQpCiAgICBpZiBlbXVsYXRvciA9PSAibXVtdSI6CiAgICAgICAgaWYgcG9y
echo dCA+PSAxNjM4NCBhbmQgKHBvcnQgLSAxNjM4NCkgJSAzMiA9PSAwOgogICAgICAgICAgICByZXR1
echo cm4gc3RyKChwb3J0IC0gMTYzODQpIC8vIDMyKQogICAgICAgIHJldHVybiAiMCIKICAgIGlmIHBv
echo cnQgPT0gNTU1NTogcmV0dXJuICIwIgogICAgaWYgcG9ydCA+PSA1NTU3IGFuZCAocG9ydCAtIDU1
echo NTUpICUgMiA9PSAwOgogICAgICAgIHJldHVybiBzdHIoKHBvcnQgLSA1NTU1KSAvLyAyKQogICAg
echo cmV0dXJuICIwIgoKZGVmIG1ha2VfaW5zdGFuY2VfaWQoZW11bGF0b3IsIHBvcnQpOgogICAgaWR4
echo ID0gZ2V0X3Byb2ZpbGVfaW5kZXgoZW11bGF0b3IsIHBvcnQpCiAgICByZXR1cm4gZiJtdW11e2lk
echo eH0iIGlmIGVtdWxhdG9yID09ICJtdW11IiBlbHNlIGYiaW5zdGFuY2V7aWR4fSIKCmRlZiBsb2Fk
echo X2luc3RhbmNlcyhwYXRoKToKICAgIGlmIG5vdCBwYXRoLmV4aXN0cygpOgogICAgICAgIHJldHVy
echo biBbXQogICAgaW5zdGFuY2VzID0gW10KICAgIGZvciBtIGluIHJlLmZpbmRpdGVyKAogICAgICAg
echo IHInXFtpbnN0YW5jZXNcLihbXlxdXSspXF0oLio/KSg/PVxuXFt8XFopJywKICAgICAgICBwYXRo
echo LnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSwgcmUuRE9UQUxMCiAgICApOgogICAgICAgIGlp
echo ZCA9IG0uZ3JvdXAoMSkuc3RyaXAoKQogICAgICAgIGJsb2NrID0gbS5ncm91cCgyKQogICAgICAg
echo IGRlZiBndihrZXksIGI9YmxvY2spOgogICAgICAgICAgICBoID0gcmUuc2VhcmNoKHJmJ157a2V5
echo fVxzKj1ccyoiPyhbXiJcbl0rKSI/JywgYiwgcmUuTVVMVElMSU5FKQogICAgICAgICAgICByZXR1
echo cm4gaC5ncm91cCgxKS5zdHJpcCgpIGlmIGggZWxzZSAiIgogICAgICAgIGluc3RhbmNlcy5hcHBl
echo bmQoewogICAgICAgICAgICAiaWQiOiBpaWQsCiAgICAgICAgICAgICJuYW1lIjogZ3YoIm5hbWUi
echo KSwKICAgICAgICAgICAgImVtdWxhdG9yIjogZ3YoImVtdWxhdG9yIiksCiAgICAgICAgICAgICJl
echo bXVsYXRvcl9wb3J0IjogZ3YoImVtdWxhdG9yX3BvcnQiKSwKICAgICAgICAgICAgInBsYXllcl90
echo YWciOiBndigicGxheWVyX3RhZyIpLAogICAgICAgICAgICAiZGlzY29yZF9ib3RfdG9rZW4iOiBn
echo digiZGlzY29yZF9ib3RfdG9rZW4iKSwKICAgICAgICAgICAgImRpc2NvcmRfY2hhbm5lbF9pZCI6
echo IGd2KCJkaXNjb3JkX2NoYW5uZWxfaWQiKSwKICAgICAgICAgICAgImRpc2NvcmRfY29udHJvbF91
echo c2VyX2lkIjogZ3YoImRpc2NvcmRfY29udHJvbF91c2VyX2lkIiksCiAgICAgICAgICAgICJkaXNj
echo b3JkX2NvbnRyb2xfZ3VpbGRfaWQiOiBndigiZGlzY29yZF9jb250cm9sX2d1aWxkX2lkIiksCiAg
echo ICAgICAgICAgICJ3ZWJob29rX3VybCI6IGd2KCJ3ZWJob29rX3VybCIpLAogICAgICAgICAgICAi
echo dGVsZWdyYW1fYm90X3Rva2VuIjogZ3YoInRlbGVncmFtX2JvdF90b2tlbiIpLAogICAgICAgICAg
echo ICAidGVsZWdyYW1fbm90aWZpY2F0aW9uX2NoYXRfaWQiOiBndigidGVsZWdyYW1fbm90aWZpY2F0
echo aW9uX2NoYXRfaWQiKSwKICAgICAgICB9KQogICAgcmV0dXJuIGluc3RhbmNlcwoKZGVmIHNhdmVf
echo aW5zdGFuY2UocGF0aCwgaWlkLCBkKToKICAgIHBhdGgucGFyZW50Lm1rZGlyKHBhcmVudHM9VHJ1
echo ZSwgZXhpc3Rfb2s9VHJ1ZSkKICAgIGNvbnRlbnQgPSBwYXRoLnJlYWRfdGV4dChlbmNvZGluZz0i
echo dXRmLTgiKSBpZiBwYXRoLmV4aXN0cygpIGVsc2UgIiIKICAgIGlmIG5vdCBjb250ZW50LnN0cmlw
echo KCk6CiAgICAgICAgY29udGVudCA9IE1VTFRJX0hFQURFUgogICAgbGluZXMgPSBbCiAgICAgICAg
echo ZiJcbltpbnN0YW5jZXMue2lpZH1dIiwKICAgICAgICBmJ25hbWUgICAgICAgICAgICAgICAgICAg
echo PSAie2RbIm5hbWUiXX0iJywKICAgICAgICBmJ2VuYWJsZWQgICAgICAgICAgICAgICAgPSB0cnVl
echo JywKICAgICAgICBmJ2VtdWxhdG9yICAgICAgICAgICAgICAgPSAie2RbImVtdWxhdG9yIl19Iics
echo CiAgICAgICAgZidlbXVsYXRvcl9wb3J0ICAgICAgICAgID0ge2RbImVtdWxhdG9yX3BvcnQiXX0n
echo LAogICAgICAgIGYnZW11bGF0b3JfcHJvZmlsZV9pbmRleCA9ICJ7ZFsicHJvZmlsZV9pbmRleCJd
echo fSInLAogICAgICAgIGYncGxheWVyX3RhZyAgICAgICAgICAgICA9ICJ7ZFsicGxheWVyX3RhZyJd
echo fSInLAogICAgICAgIGYncXVldWVfcGF0aCAgICAgICAgICAgICA9ICJpbnN0YW5jZXMve2lpZH0v
echo bGF0ZXN0X2JyYXdsZXJfZGF0YS5qc29uIicsCiAgICBdCiAgICBpZiBkLmdldCgiZGlzY29yZF90
echo b2tlbiIpOgogICAgICAgIGxpbmVzLmFwcGVuZChmJ2Rpc2NvcmRfYm90X3Rva2VuICAgICAgICA9
echo ICJ7ZFsiZGlzY29yZF90b2tlbiJdfSInKQogICAgaWYgZC5nZXQoImRpc2NvcmRfY2hhbm5lbCIp
echo OgogICAgICAgIGxpbmVzLmFwcGVuZChmJ2Rpc2NvcmRfY2hhbm5lbF9pZCAgICAgICA9ICJ7ZFsi
echo ZGlzY29yZF9jaGFubmVsIl19IicpCiAgICBpZiBkLmdldCgiZGlzY29yZF91c2VyIik6CiAgICAg
echo ICAgbGluZXMuYXBwZW5kKGYnZGlzY29yZF9jb250cm9sX3VzZXJfaWQgID0gIntkWyJkaXNjb3Jk
echo X3VzZXIiXX0iJykKICAgIGlmIGQuZ2V0KCJkaXNjb3JkX2d1aWxkIik6CiAgICAgICAgbGluZXMu
echo YXBwZW5kKGYnZGlzY29yZF9jb250cm9sX2d1aWxkX2lkID0gIntkWyJkaXNjb3JkX2d1aWxkIl19
echo IicpCiAgICBpZiBkLmdldCgid2ViaG9va191cmwiKToKICAgICAgICBsaW5lcy5hcHBlbmQoZid3
echo ZWJob29rX3VybCAgICAgICAgICAgICAgPSAie2RbIndlYmhvb2tfdXJsIl19IicpCiAgICBpZiBk
echo LmdldCgidGVsZWdyYW1fYm90X3Rva2VuIik6CiAgICAgICAgbGluZXMuYXBwZW5kKGYndGVsZWdy
echo YW1fYm90X3Rva2VuICAgICAgID0gIntkWyJ0ZWxlZ3JhbV9ib3RfdG9rZW4iXX0iJykKICAgIGlm
echo IGQuZ2V0KCJ0ZWxlZ3JhbV9jaGF0X2lkIik6CiAgICAgICAgbGluZXMuYXBwZW5kKGYndGVsZWdy
echo YW1fbm90aWZpY2F0aW9uX2NoYXRfaWQgPSAie2RbInRlbGVncmFtX2NoYXRfaWQiXX0iJykKICAg
echo IGJsb2NrID0gIlxuIi5qb2luKGxpbmVzKSArICJcbiIKICAgIHBhdHRlcm4gPSByZidcblxbaW5z
echo dGFuY2VzXC57cmUuZXNjYXBlKGlpZCl9XF1bXlxbXSonCiAgICBwcmVwZW5kZWQgPSAiXG4iICsg
echo Y29udGVudAogICAgaWYgcmUuc2VhcmNoKHBhdHRlcm4sIHByZXBlbmRlZCwgcmUuRE9UQUxMKToK
echo ICAgICAgICBuZXcgPSByZS5zdWIocGF0dGVybiwgYmxvY2ssIHByZXBlbmRlZCwgZmxhZ3M9cmUu
echo RE9UQUxMKS5sc3RyaXAoIlxuIikKICAgIGVsc2U6CiAgICAgICAgbmV3ID0gY29udGVudC5yc3Ry
echo aXAoKSArIGJsb2NrCiAgICBwYXRoLndyaXRlX3RleHQobmV3LCBlbmNvZGluZz0idXRmLTgiKQoK
echo ZGVmIGRlbGV0ZV9pbnN0YW5jZShwYXRoLCBpaWQpOgogICAgaWYgbm90IHBhdGguZXhpc3RzKCk6
echo CiAgICAgICAgcmV0dXJuCiAgICBjb250ZW50ID0gcGF0aC5yZWFkX3RleHQoZW5jb2Rpbmc9InV0
echo Zi04IikKICAgIHBhdHRlcm4gPSByZidcblxbaW5zdGFuY2VzXC57cmUuZXNjYXBlKGlpZCl9XF1b
echo XlxbXSonCiAgICBuZXcgPSByZS5zdWIocGF0dGVybiwgIiIsICJcbiIgKyBjb250ZW50LCBmbGFn
echo cz1yZS5ET1RBTEwpLmxzdHJpcCgiXG4iKQogICAgcGF0aC53cml0ZV90ZXh0KG5ldywgZW5jb2Rp
echo bmc9InV0Zi04IikKCmRlZiBfbm9ybWFsaXplX3dlYmhvb2tfdXJsKHVybCk6CiAgICBpbXBvcnQg
echo cmUKICAgIGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxzcGxpdCwgdXJsdW5zcGxpdAogICAg
echo Y2xlYW5lZCA9IHN0cih1cmwgb3IgIiIpLnN0cmlwKCkuc3RyaXAoIjw+Iikuc3RyaXAoKQogICAg
echo aWYgbm90IGNsZWFuZWQ6CiAgICAgICAgcmV0dXJuICIiCiAgICBwYXJ0cyA9IHVybHNwbGl0KGNs
echo ZWFuZWQpCiAgICBpZiBub3QgcGFydHMuc2NoZW1lIG9yIG5vdCBwYXJ0cy5uZXRsb2M6CiAgICAg
echo ICAgcmV0dXJuIGNsZWFuZWQKICAgIGhvc3QgPSBwYXJ0cy5uZXRsb2MubG93ZXIoKQogICAgaWYg
echo aG9zdCBpbiB7ImNhbmFyeS5kaXNjb3JkLmNvbSIsICJwdGIuZGlzY29yZC5jb20iLCAiZGlzY29y
echo ZGFwcC5jb20ifToKICAgICAgICBob3N0ID0gImRpc2NvcmQuY29tIgogICAgcGF0aCA9IHBhcnRz
echo LnBhdGgucnN0cmlwKCIvIikKICAgIHJldHVybiB1cmx1bnNwbGl0KCgiaHR0cHMiLCBob3N0LCBw
echo YXRoLCAiIiwgIiIpKQoKZGVmIF92YWxpZGF0ZV93ZWJob29rX3VybCh1cmwpOgogICAgaW1wb3J0
echo IHJlCiAgICBXRUJIT09LX1JFID0gcmUuY29tcGlsZSgKICAgICAgICByIl5odHRwczovLyg/OmNh
echo bmFyeVwufHB0YlwuKT9kaXNjb3JkKD86YXBwKT9cLmNvbS9hcGkvd2ViaG9va3MvIgogICAgICAg
echo IHIiKD9QPGlkPlswLTldezE3LDIwfSkvKD9QPHRva2VuPltBLVphLXowLTkuXy1dezYwLH0pLz8k
echo IgogICAgKQogICAgbm9ybWFsaXplZCA9IF9ub3JtYWxpemVfd2ViaG9va191cmwodXJsKQogICAg
echo aWYgbm90IG5vcm1hbGl6ZWQ6CiAgICAgICAgcmV0dXJuIEZhbHNlLCAiIiwgIldlYmhvb2sgVVJM
echo IGlzIGVtcHR5LiIKICAgIGlmIFdFQkhPT0tfUkUubWF0Y2gobm9ybWFsaXplZCk6CiAgICAgICAg
echo cmV0dXJuIFRydWUsIG5vcm1hbGl6ZWQsICIiCiAgICByZXR1cm4gRmFsc2UsIG5vcm1hbGl6ZWQs
echo ICJVUkwgbXVzdCBiZTogaHR0cHM6Ly9kaXNjb3JkLmNvbS9hcGkvd2ViaG9va3MvPGlkPi88dG9r
echo ZW4+IgoKZGVmIHRlc3RfZGlzY29yZF93ZWJob29rKHdlYmhvb2tfdXJsKToKICAgIGltcG9ydCB1
echo cmxsaWIucmVxdWVzdCwgdXJsbGliLmVycm9yLCBqc29uCiAgICBvaywgbm9ybWFsaXplZCwgZXJy
echo ID0gX3ZhbGlkYXRlX3dlYmhvb2tfdXJsKHdlYmhvb2tfdXJsKQogICAgaWYgbm90IG9rOgogICAg
echo ICAgIG1lc3NhZ2Vib3guc2hvd2Vycm9yKCJEaXNjb3JkIiwgZiJJbnZhbGlkIHdlYmhvb2sgVVJM
echo OiB7ZXJyfSIpCiAgICAgICAgcmV0dXJuCiAgICBwYXlsb2FkID0ganNvbi5kdW1wcyh7ImNvbnRl
echo bnQiOiAiUHlsYUFpLVhYWjogRGlzY29yZCB3ZWJob29rIHRlc3QgT0suIn0pLmVuY29kZSgpCiAg
echo ICByZXEgPSB1cmxsaWIucmVxdWVzdC5SZXF1ZXN0KAogICAgICAgIG5vcm1hbGl6ZWQsIGRhdGE9
echo cGF5bG9hZCwKICAgICAgICBoZWFkZXJzPXsiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pz
echo b24iLCAiVXNlci1BZ2VudCI6ICJQeWxhQWktWFhaLzEuMCJ9LCBtZXRob2Q9IlBPU1QiCiAgICAp
echo CiAgICB0cnk6CiAgICAgICAgd2l0aCB1cmxsaWIucmVxdWVzdC51cmxvcGVuKHJlcSwgdGltZW91
echo dD0xMCkgYXMgcjoKICAgICAgICAgICAgaWYgci5zdGF0dXMgaW4gKDIwMCwgMjA0KToKICAgICAg
echo ICAgICAgICAgIG1lc3NhZ2Vib3guc2hvd2luZm8oIkRpc2NvcmQiLCAiVGVzdCBtZXNzYWdlIHNl
echo bnQgc3VjY2Vzc2Z1bGx5LiIpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBtZXNz
echo YWdlYm94LnNob3dlcnJvcigiRGlzY29yZCIsIGYiVW5leHBlY3RlZCBzdGF0dXM6IHtyLnN0YXR1
echo c30iKQogICAgZXhjZXB0IHVybGxpYi5lcnJvci5IVFRQRXJyb3IgYXMgZToKICAgICAgICBib2R5
echo ID0gIiIKICAgICAgICB0cnk6CiAgICAgICAgICAgIGJvZHkgPSBlLnJlYWQoKS5kZWNvZGUoInV0
echo Zi04IiwgZXJyb3JzPSJyZXBsYWNlIikKICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAg
echo ICAgICBwYXNzCiAgICAgICAgbWVzc2FnZWJveC5zaG93ZXJyb3IoIkRpc2NvcmQiLCBmIkhUVFAg
echo e2UuY29kZX06IHtlLnJlYXNvbn1cbntib2R5WzoyMDBdfSIpCiAgICBleGNlcHQgRXhjZXB0aW9u
echo IGFzIGU6CiAgICAgICAgbWVzc2FnZWJveC5zaG93ZXJyb3IoIkRpc2NvcmQiLCBmIkZhaWxlZDog
echo e2V9IikKCmRlZiB0ZXN0X3RlbGVncmFtX2JvdChib3RfdG9rZW4sIGNoYXRfaWQpOgogICAgaW1w
echo b3J0IHVybGxpYi5yZXF1ZXN0LCB1cmxsaWIuZXJyb3IsIGpzb24KICAgIGJvdF90b2tlbiA9IGJv
echo dF90b2tlbi5zdHJpcCgpCiAgICBjaGF0X2lkID0gY2hhdF9pZC5zdHJpcCgpCiAgICBpZiBub3Qg
echo Ym90X3Rva2VuOgogICAgICAgIG1lc3NhZ2Vib3guc2hvd2Vycm9yKCJFcnJvciIsICJFbnRlciBh
echo IFRlbGVncmFtIEJvdCBUb2tlbi4iKQogICAgICAgIHJldHVybgogICAgaWYgbm90IGNoYXRfaWQ6
echo CiAgICAgICAgbWVzc2FnZWJveC5zaG93ZXJyb3IoIkVycm9yIiwgIkVudGVyIGEgVGVsZWdyYW0g
echo Q2hhdCBJRC4iKQogICAgICAgIHJldHVybgogICAgdXJsID0gZiJodHRwczovL2FwaS50ZWxlZ3Jh
echo bS5vcmcvYm90e2JvdF90b2tlbn0vc2VuZE1lc3NhZ2UiCiAgICBwYXlsb2FkID0ganNvbi5kdW1w
echo cyh7ImNoYXRfaWQiOiBjaGF0X2lkLCAidGV4dCI6ICJQeWxhQWktWFhaOiBUZWxlZ3JhbSB0ZXN0
echo IE9LLiJ9KS5lbmNvZGUoKQogICAgcmVxID0gdXJsbGliLnJlcXVlc3QuUmVxdWVzdCh1cmwsIGRh
echo dGE9cGF5bG9hZCwgaGVhZGVycz17IkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIn0s
echo IG1ldGhvZD0iUE9TVCIpCiAgICB0cnk6CiAgICAgICAgd2l0aCB1cmxsaWIucmVxdWVzdC51cmxv
echo cGVuKHJlcSwgdGltZW91dD0xMCkgYXMgcjoKICAgICAgICAgICAgcmVzdWx0ID0ganNvbi5sb2Fk
echo cyhyLnJlYWQoKSkKICAgICAgICAgICAgaWYgcmVzdWx0LmdldCgib2siKToKICAgICAgICAgICAg
echo ICAgIG1lc3NhZ2Vib3guc2hvd2luZm8oIlRlbGVncmFtIiwgIlRlc3QgbWVzc2FnZSBzZW50IHN1
echo Y2Nlc3NmdWxseS4iKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgbWVzc2FnZWJv
echo eC5zaG93ZXJyb3IoIlRlbGVncmFtIiwgZiJUZWxlZ3JhbSBlcnJvcjoge3Jlc3VsdC5nZXQoJ2Rl
echo c2NyaXB0aW9uJywgJ3Vua25vd24nKX0iKQogICAgZXhjZXB0IHVybGxpYi5lcnJvci5IVFRQRXJy
echo b3IgYXMgZToKICAgICAgICBib2R5ID0gZS5yZWFkKCkuZGVjb2RlKCJ1dGYtOCIsIGVycm9ycz0i
echo cmVwbGFjZSIpCiAgICAgICAgdHJ5OgogICAgICAgICAgICBtc2cgPSBqc29uLmxvYWRzKGJvZHkp
echo LmdldCgiZGVzY3JpcHRpb24iLCBib2R5KQogICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAg
echo ICAgICAgIG1zZyA9IGJvZHkKICAgICAgICBtZXNzYWdlYm94LnNob3dlcnJvcigiVGVsZWdyYW0i
echo LCBmIkhUVFAge2UuY29kZX06IHttc2d9IikKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAg
echo ICAgICBtZXNzYWdlYm94LnNob3dlcnJvcigiVGVsZWdyYW0iLCBmIkZhaWxlZDoge2V9IikKCmNs
echo YXNzIEFwcDoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb290KToKICAgICAgICBzZWxmLnJvb3Qg
echo PSByb290CiAgICAgICAgcm9vdC50aXRsZSgiUHlsYUFpLVhYWiAg4oCUICBJbnN0YW5jZSBNYW5h
echo Z2VyIikKICAgICAgICByb290LnJlc2l6YWJsZShGYWxzZSwgRmFsc2UpCiAgICAgICAgdHJ5Ogog
echo ICAgICAgICAgICByb290Lmljb25iaXRtYXAoc3RyKEJBU0VfRElSIC8gImljb24uaWNvIikpCiAg
echo ICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgcGFzcwoKICAgICAgICBsZWZ0ID0g
echo dGsuRnJhbWUocm9vdCwgcGFkeD0xNiwgcGFkeT0xMikKICAgICAgICBsZWZ0LmdyaWQocm93PTAs
echo IGNvbHVtbj0wLCBzdGlja3k9Im4iKQoKICAgICAgICB0ay5MYWJlbChsZWZ0LCB0ZXh0PSJBZGQg
echo LyBVcGRhdGUgSW5zdGFuY2UiLCBmb250PSgiIiwgMTEsICJib2xkIikpLmdyaWQoCiAgICAgICAg
echo ICAgIHJvdz0wLCBjb2x1bW49MCwgY29sdW1uc3Bhbj0yLCBzdGlja3k9InciLCBwYWR5PSgwLCA4
echo KSkKCiAgICAgICAgZmllbGRzID0gWwogICAgICAgICAgICAoIkVtdWxhdG9yIiwgICAgImVtdV92
echo YXIiLCAgImNvbWJvIiwgWyJMRFBsYXllciIsICJNdU11Il0pLAogICAgICAgICAgICAoIkFEQiBQ
echo b3J0IiwgICAgInBvcnRfdmFyIiwgImVudHJ5IiwgIjU1NTUiKSwKICAgICAgICAgICAgKCJJbnN0
echo YW5jZSBJRCIsICJpZF92YXIiLCAgICJlbnRyeSIsICJpbnN0YW5jZTAiKSwKICAgICAgICAgICAg
echo KCJOYW1lIiwgICAgICAgICJuYW1lX3ZhciIsICJlbnRyeSIsICJMRFBsYXllciAjMCIpLAogICAg
echo ICAgICAgICAoIlBsYXllciBUYWciLCAgInRhZ192YXIiLCAgImVudHJ5IiwgIiIpLAogICAgICAg
echo IF0KICAgICAgICBmb3IgciwgKGxhYmVsLCBhdHRyLCBraW5kLCB2YWwpIGluIGVudW1lcmF0ZShm
echo aWVsZHMsIHN0YXJ0PTEpOgogICAgICAgICAgICB0ay5MYWJlbChsZWZ0LCB0ZXh0PWxhYmVsICsg
echo IjoiLCBhbmNob3I9InciLCB3aWR0aD0xNikuZ3JpZCgKICAgICAgICAgICAgICAgIHJvdz1yLCBj
echo b2x1bW49MCwgc3RpY2t5PSJ3IiwgcGFkeT0yKQogICAgICAgICAgICB2YXIgPSB0ay5TdHJpbmdW
echo YXIodmFsdWU9dmFsWzBdIGlmIGtpbmQgPT0gImNvbWJvIiBlbHNlIHZhbCkKICAgICAgICAgICAg
echo c2V0YXR0cihzZWxmLCBhdHRyLCB2YXIpCiAgICAgICAgICAgIGlmIGtpbmQgPT0gImNvbWJvIjoK
echo ICAgICAgICAgICAgICAgIHcgPSB0dGsuQ29tYm9ib3gobGVmdCwgdGV4dHZhcmlhYmxlPXZhciwg
echo dmFsdWVzPXZhbCwgc3RhdGU9InJlYWRvbmx5Iiwgd2lkdGg9MjIpCiAgICAgICAgICAgICAgICB2
echo YXIudHJhY2VfYWRkKCJ3cml0ZSIsIHNlbGYuX2F1dG9fZmlsbCkKICAgICAgICAgICAgZWxzZToK
echo ICAgICAgICAgICAgICAgIHcgPSB0ay5FbnRyeShsZWZ0LCB0ZXh0dmFyaWFibGU9dmFyLCB3aWR0
echo aD0yNCkKICAgICAgICAgICAgICAgIGlmIGF0dHIgPT0gInBvcnRfdmFyIjoKICAgICAgICAgICAg
echo ICAgICAgICB2YXIudHJhY2VfYWRkKCJ3cml0ZSIsIHNlbGYuX2F1dG9fZmlsbCkKICAgICAgICAg
echo ICAgdy5ncmlkKHJvdz1yLCBjb2x1bW49MSwgc3RpY2t5PSJ3IiwgcGFkeD00KQoKICAgICAgICBz
echo ZXBfcm93ID0gbGVuKGZpZWxkcykgKyAxCiAgICAgICAgdGsuTGFiZWwobGVmdCwgdGV4dD0iRGlz
echo Y29yZCAgKG9wdGlvbmFsKSIsIGZvbnQ9KCIiLCA5LCAiaXRhbGljIiksIGZnPSIjNjY2IikuZ3Jp
echo ZCgKICAgICAgICAgICAgcm93PXNlcF9yb3csIGNvbHVtbj0wLCBjb2x1bW5zcGFuPTIsIHN0aWNr
echo eT0idyIsIHBhZHk9KDEwLCAyKSkKCiAgICAgICAgZGlzY29yZF9maWVsZHMgPSBbCiAgICAgICAg
echo ICAgICgiQm90IFRva2VuIiwgICAgICAgImRpc2NvcmRfdG9rZW5fdmFyIiksCiAgICAgICAgICAg
echo ICgiQ2hhbm5lbCBJRCIsICAgICAgImRpc2NvcmRfY2hhbm5lbF92YXIiKSwKICAgICAgICAgICAg
echo KCJVc2VyIElEIiwgICAgICAgICAiZGlzY29yZF91c2VyX3ZhciIpLAogICAgICAgICAgICAoIkd1
echo aWxkL1NlcnZlciBJRCIsICJkaXNjb3JkX2d1aWxkX3ZhciIpLAogICAgICAgICAgICAoIldlYmhv
echo b2sgVVJMIiwgICAgICJkaXNjb3JkX3dlYmhvb2tfdmFyIiksCiAgICAgICAgXQogICAgICAgIGZv
echo ciBpLCAobGFiZWwsIGF0dHIpIGluIGVudW1lcmF0ZShkaXNjb3JkX2ZpZWxkcyk6CiAgICAgICAg
echo ICAgIHIgPSBzZXBfcm93ICsgMSArIGkKICAgICAgICAgICAgdGsuTGFiZWwobGVmdCwgdGV4dD1s
echo YWJlbCArICI6IiwgYW5jaG9yPSJ3Iiwgd2lkdGg9MTYpLmdyaWQoCiAgICAgICAgICAgICAgICBy
echo b3c9ciwgY29sdW1uPTAsIHN0aWNreT0idyIsIHBhZHk9MikKICAgICAgICAgICAgdmFyID0gdGsu
echo U3RyaW5nVmFyKCkKICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBhdHRyLCB2YXIpCiAgICAgICAg
echo ICAgIHRrLkVudHJ5KGxlZnQsIHRleHR2YXJpYWJsZT12YXIsIHdpZHRoPTI0KS5ncmlkKHJvdz1y
echo LCBjb2x1bW49MSwgc3RpY2t5PSJ3IiwgcGFkeD00KQoKICAgICAgICB0ZXN0X2Rpc2Nfcm93ID0g
echo c2VwX3JvdyArIDEgKyBsZW4oZGlzY29yZF9maWVsZHMpCiAgICAgICAgdGsuQnV0dG9uKAogICAg
echo ICAgICAgICBsZWZ0LCB0ZXh0PSJUZXN0IERpc2NvcmQgV2ViaG9vayIsIGNvbW1hbmQ9c2VsZi5f
echo dGVzdF9kaXNjb3JkLAogICAgICAgICAgICByZWxpZWY9ImZsYXQiLCBmZz0iIzU4NjVGMiIsIGN1
echo cnNvcj0iaGFuZDIiLCBmb250PSgiIiwgOSkKICAgICAgICApLmdyaWQocm93PXRlc3RfZGlzY19y
echo b3csIGNvbHVtbj0wLCBjb2x1bW5zcGFuPTIsIHN0aWNreT0iZSIsIHBhZHk9KDIsIDYpKQoKICAg
echo ICAgICB0Z19sYWJlbF9yb3cgPSB0ZXN0X2Rpc2Nfcm93ICsgMQogICAgICAgIHRrLkxhYmVsKGxl
echo ZnQsIHRleHQ9IlRlbGVncmFtICAob3B0aW9uYWwpIiwgZm9udD0oIiIsIDksICJpdGFsaWMiKSwg
echo Zmc9IiM2NjYiKS5ncmlkKAogICAgICAgICAgICByb3c9dGdfbGFiZWxfcm93LCBjb2x1bW49MCwg
echo Y29sdW1uc3Bhbj0yLCBzdGlja3k9InciLCBwYWR5PSg0LCAyKSkKCiAgICAgICAgdGdfZmllbGRz
echo ID0gWwogICAgICAgICAgICAoIkJvdCBUb2tlbiIsICAidGVsZWdyYW1fdG9rZW5fdmFyIiksCiAg
echo ICAgICAgICAgICgiQ2hhdCBJRCIsICAgICJ0ZWxlZ3JhbV9jaGF0aWRfdmFyIiksCiAgICAgICAg
echo XQogICAgICAgIGZvciBpLCAobGFiZWwsIGF0dHIpIGluIGVudW1lcmF0ZSh0Z19maWVsZHMpOgog
echo ICAgICAgICAgICByID0gdGdfbGFiZWxfcm93ICsgMSArIGkKICAgICAgICAgICAgdGsuTGFiZWwo
echo bGVmdCwgdGV4dD1sYWJlbCArICI6IiwgYW5jaG9yPSJ3Iiwgd2lkdGg9MTYpLmdyaWQoCiAgICAg
echo ICAgICAgICAgICByb3c9ciwgY29sdW1uPTAsIHN0aWNreT0idyIsIHBhZHk9MikKICAgICAgICAg
echo ICAgdmFyID0gdGsuU3RyaW5nVmFyKCkKICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBhdHRyLCB2
echo YXIpCiAgICAgICAgICAgIHRrLkVudHJ5KGxlZnQsIHRleHR2YXJpYWJsZT12YXIsIHdpZHRoPTI0
echo KS5ncmlkKHJvdz1yLCBjb2x1bW49MSwgc3RpY2t5PSJ3IiwgcGFkeD00KQoKICAgICAgICB0ZXN0
echo X3RnX3JvdyA9IHRnX2xhYmVsX3JvdyArIDEgKyBsZW4odGdfZmllbGRzKQogICAgICAgIHRrLkJ1
echo dHRvbigKICAgICAgICAgICAgbGVmdCwgdGV4dD0iVGVzdCBUZWxlZ3JhbSBCb3QiLCBjb21tYW5k
echo PXNlbGYuX3Rlc3RfdGVsZWdyYW0sCiAgICAgICAgICAgIHJlbGllZj0iZmxhdCIsIGZnPSIjMjI5
echo RUQ5IiwgY3Vyc29yPSJoYW5kMiIsIGZvbnQ9KCIiLCA5KQogICAgICAgICkuZ3JpZChyb3c9dGVz
echo dF90Z19yb3csIGNvbHVtbj0wLCBjb2x1bW5zcGFuPTIsIHN0aWNreT0iZSIsIHBhZHk9KDIsIDYp
echo KQoKICAgICAgICBidG5fcm93ID0gdGVzdF90Z19yb3cgKyAxCiAgICAgICAgdGsuQnV0dG9uKAog
echo ICAgICAgICAgICBsZWZ0LCB0ZXh0PSIgIEFkZCAvIFVwZGF0ZSBJbnN0YW5jZSAgIiwgY29tbWFu
echo ZD1zZWxmLl9hZGQsCiAgICAgICAgICAgIGJnPSIjMmE5ZDRlIiwgZmc9IndoaXRlIiwgZm9udD0o
echo IiIsIDEwLCAiYm9sZCIpLCByZWxpZWY9ImZsYXQiLAogICAgICAgICAgICBjdXJzb3I9ImhhbmQy
echo IiwgcGFkeT01CiAgICAgICAgKS5ncmlkKHJvdz1idG5fcm93LCBjb2x1bW49MCwgY29sdW1uc3Bh
echo bj0yLCBzdGlja3k9ImV3IiwgcGFkeT0oMTAsIDIpKQogICAgICAgIHRrLkJ1dHRvbigKICAgICAg
echo ICAgICAgbGVmdCwgdGV4dD0iQ2xlYXIgZm9ybSIsIGNvbW1hbmQ9c2VsZi5fY2xlYXIsCiAgICAg
echo ICAgICAgIHJlbGllZj0iZmxhdCIsIGZnPSIjNTU1IiwgY3Vyc29yPSJoYW5kMiIKICAgICAgICAp
echo LmdyaWQocm93PWJ0bl9yb3cgKyAxLCBjb2x1bW49MCwgY29sdW1uc3Bhbj0yLCBzdGlja3k9ImUi
echo KQoKICAgICAgICByaWdodCA9IHRrLkZyYW1lKHJvb3QsIHBhZHg9OCwgcGFkeT0xMikKICAgICAg
echo ICByaWdodC5ncmlkKHJvdz0wLCBjb2x1bW49MSwgc3RpY2t5PSJuc2V3IiwgcGFkeD0oMCwgMTIp
echo KQoKICAgICAgICB0ay5MYWJlbChyaWdodCwgdGV4dD0iRXhpc3RpbmcgaW5zdGFuY2VzIiwgZm9u
echo dD0oIiIsIDExLCAiYm9sZCIpKS5wYWNrKGFuY2hvcj0idyIpCgogICAgICAgIGxpc3RfZnJhbWUg
echo PSB0ay5GcmFtZShyaWdodCkKICAgICAgICBsaXN0X2ZyYW1lLnBhY2soZmlsbD0iYm90aCIsIGV4
echo cGFuZD1UcnVlLCBwYWR5PTQpCiAgICAgICAgc2VsZi5saXN0Ym94ID0gdGsuTGlzdGJveChsaXN0
echo X2ZyYW1lLCBoZWlnaHQ9MTQsIHdpZHRoPTI4LCBmb250PSgiQ29uc29sYXMiLCA5KSwKICAgICAg
echo ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RiYWNrZ3JvdW5kPSIjMmE5ZDRlIiwg
echo YWN0aXZlc3R5bGU9Im5vbmUiKQogICAgICAgIHNiID0gdGsuU2Nyb2xsYmFyKGxpc3RfZnJhbWUs
echo IG9yaWVudD0idmVydGljYWwiLCBjb21tYW5kPXNlbGYubGlzdGJveC55dmlldykKICAgICAgICBz
echo ZWxmLmxpc3Rib3guY29uZmlnKHlzY3JvbGxjb21tYW5kPXNiLnNldCkKICAgICAgICBzZWxmLmxp
echo c3Rib3gucGFjayhzaWRlPSJsZWZ0IiwgZmlsbD0iYm90aCIsIGV4cGFuZD1UcnVlKQogICAgICAg
echo IHNiLnBhY2soc2lkZT0icmlnaHQiLCBmaWxsPSJ5IikKICAgICAgICBzZWxmLmxpc3Rib3guYmlu
echo ZCgiPDxMaXN0Ym94U2VsZWN0Pj4iLCBzZWxmLl9sb2FkX3NlbGVjdGVkKQoKICAgICAgICBidG4y
echo ID0gdGsuRnJhbWUocmlnaHQpCiAgICAgICAgYnRuMi5wYWNrKGZpbGw9IngiKQogICAgICAgIHRr
echo LkJ1dHRvbihidG4yLCB0ZXh0PSJMb2FkIGludG8gZm9ybSIsIGNvbW1hbmQ9c2VsZi5fbG9hZF9z
echo ZWxlY3RlZCwKICAgICAgICAgICAgICAgICAgcmVsaWVmPSJmbGF0IiwgZmc9IiMyYTlkNGUiLCBj
echo dXJzb3I9ImhhbmQyIiwgZm9udD0oIiIsIDkpKS5wYWNrKHNpZGU9ImxlZnQiKQogICAgICAgIHRr
echo LkJ1dHRvbihidG4yLCB0ZXh0PSJEZWxldGUgc2VsZWN0ZWQiLCBjb21tYW5kPXNlbGYuX2RlbGV0
echo ZSwKICAgICAgICAgICAgICAgICAgcmVsaWVmPSJmbGF0IiwgZmc9IiNjMDM5MmIiLCBjdXJzb3I9
echo ImhhbmQyIiwgZm9udD0oIiIsIDkpKS5wYWNrKHNpZGU9InJpZ2h0IikKCiAgICAgICAgdGsuTGFi
echo ZWwocmlnaHQsIHRleHQ9ZiJDb25maWc6IHtUT01MX1BBVEh9IiwgZmc9IiM5OTkiLCBmb250PSgi
echo IiwgNyksCiAgICAgICAgICAgICAgICAgd3JhcGxlbmd0aD0yMDAsIGp1c3RpZnk9ImxlZnQiKS5w
echo YWNrKGFuY2hvcj0idyIsIHBhZHk9KDYsIDApKQoKICAgICAgICBzZWxmLl9yZWZyZXNoX2xpc3Qo
echo KQoKICAgIGRlZiBfYXV0b19maWxsKHNlbGYsICpfKToKICAgICAgICBlbXUgPSBzZWxmLmVtdV92
echo YXIuZ2V0KCkubG93ZXIoKQogICAgICAgIHRyeToKICAgICAgICAgICAgcG9ydCA9IGludChzZWxm
echo LnBvcnRfdmFyLmdldCgpLnN0cmlwKCkpCiAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAg
echo ICAgICAgIHJldHVybgogICAgICAgIGlkeCA9IGdldF9wcm9maWxlX2luZGV4KGVtdSwgcG9ydCkK
echo ICAgICAgICBzZWxmLmlkX3Zhci5zZXQobWFrZV9pbnN0YW5jZV9pZChlbXUsIHBvcnQpKQogICAg
echo ICAgIHNlbGYubmFtZV92YXIuc2V0KGYieydNdU11JyBpZiBlbXUgPT0gJ211bXUnIGVsc2UgJ0xE
echo UGxheWVyJ30gI3tpZHh9IikKCiAgICBkZWYgX2NsZWFyKHNlbGYpOgogICAgICAgIHNlbGYuZW11
echo X3Zhci5zZXQoIkxEUGxheWVyIikKICAgICAgICBzZWxmLnBvcnRfdmFyLnNldCgiNTU1NSIpCiAg
echo ICAgICAgc2VsZi50YWdfdmFyLnNldCgiIikKICAgICAgICBmb3IgYXR0ciBpbiAoCiAgICAgICAg
echo ICAgICJkaXNjb3JkX3Rva2VuX3ZhciIsICJkaXNjb3JkX2NoYW5uZWxfdmFyIiwgImRpc2NvcmRf
echo dXNlcl92YXIiLAogICAgICAgICAgICAiZGlzY29yZF9ndWlsZF92YXIiLCAiZGlzY29yZF93ZWJo
echo b29rX3ZhciIsCiAgICAgICAgICAgICJ0ZWxlZ3JhbV90b2tlbl92YXIiLCAidGVsZWdyYW1fY2hh
echo dGlkX3ZhciIKICAgICAgICApOgogICAgICAgICAgICBnZXRhdHRyKHNlbGYsIGF0dHIpLnNldCgi
echo IikKICAgICAgICBzZWxmLl9hdXRvX2ZpbGwoKQoKICAgIGRlZiBfdGVzdF9kaXNjb3JkKHNlbGYp
echo OgogICAgICAgIHRlc3RfZGlzY29yZF93ZWJob29rKHNlbGYuZGlzY29yZF93ZWJob29rX3Zhci5n
echo ZXQoKSkKCiAgICBkZWYgX3Rlc3RfdGVsZWdyYW0oc2VsZik6CiAgICAgICAgdGVzdF90ZWxlZ3Jh
echo bV9ib3Qoc2VsZi50ZWxlZ3JhbV90b2tlbl92YXIuZ2V0KCksIHNlbGYudGVsZWdyYW1fY2hhdGlk
echo X3Zhci5nZXQoKSkKCiAgICBkZWYgX2FkZChzZWxmKToKICAgICAgICBwb3J0X3MgPSBzZWxmLnBv
echo cnRfdmFyLmdldCgpLnN0cmlwKCkKICAgICAgICB0YWcgPSBzZWxmLnRhZ192YXIuZ2V0KCkuc3Ry
echo aXAoKQogICAgICAgIGlmIG5vdCBwb3J0X3M6CiAgICAgICAgICAgIG1lc3NhZ2Vib3guc2hvd2Vy
echo cm9yKCJFcnJvciIsICJBREIgUG9ydCBpcyByZXF1aXJlZC4iKQogICAgICAgICAgICByZXR1cm4K
echo ICAgICAgICB0cnk6CiAgICAgICAgICAgIHBvcnQgPSBpbnQocG9ydF9zKQogICAgICAgIGV4Y2Vw
echo dCBWYWx1ZUVycm9yOgogICAgICAgICAgICBtZXNzYWdlYm94LnNob3dlcnJvcigiRXJyb3IiLCAi
echo QURCIFBvcnQgbXVzdCBiZSBhIG51bWJlci4iKQogICAgICAgICAgICByZXR1cm4KICAgICAgICBl
echo bXUgPSBzZWxmLmVtdV92YXIuZ2V0KCkubG93ZXIoKQogICAgICAgIGlpZCA9IHNlbGYuaWRfdmFy
echo LmdldCgpLnN0cmlwKCkgb3IgbWFrZV9pbnN0YW5jZV9pZChlbXUsIHBvcnQpCiAgICAgICAgZGF0
echo YSA9IHsKICAgICAgICAgICAgIm5hbWUiOiBzZWxmLm5hbWVfdmFyLmdldCgpLnN0cmlwKCksCiAg
echo ICAgICAgICAgICJlbXVsYXRvciI6IGVtdSwKICAgICAgICAgICAgImVtdWxhdG9yX3BvcnQiOiBw
echo b3J0LAogICAgICAgICAgICAicHJvZmlsZV9pbmRleCI6IGdldF9wcm9maWxlX2luZGV4KGVtdSwg
echo cG9ydCksCiAgICAgICAgICAgICJwbGF5ZXJfdGFnIjogdGFnLAogICAgICAgICAgICAiZGlzY29y
echo ZF90b2tlbiI6IHNlbGYuZGlzY29yZF90b2tlbl92YXIuZ2V0KCkuc3RyaXAoKSwKICAgICAgICAg
echo ICAgImRpc2NvcmRfY2hhbm5lbCI6IHNlbGYuZGlzY29yZF9jaGFubmVsX3Zhci5nZXQoKS5zdHJp
echo cCgpLAogICAgICAgICAgICAiZGlzY29yZF91c2VyIjogc2VsZi5kaXNjb3JkX3VzZXJfdmFyLmdl
echo dCgpLnN0cmlwKCksCiAgICAgICAgICAgICJkaXNjb3JkX2d1aWxkIjogc2VsZi5kaXNjb3JkX2d1
echo aWxkX3Zhci5nZXQoKS5zdHJpcCgpLAogICAgICAgICAgICAid2ViaG9va191cmwiOiBzZWxmLmRp
echo c2NvcmRfd2ViaG9va192YXIuZ2V0KCkuc3RyaXAoKSwKICAgICAgICAgICAgInRlbGVncmFtX2Jv
echo dF90b2tlbiI6IHNlbGYudGVsZWdyYW1fdG9rZW5fdmFyLmdldCgpLnN0cmlwKCksCiAgICAgICAg
echo ICAgICJ0ZWxlZ3JhbV9jaGF0X2lkIjogc2VsZi50ZWxlZ3JhbV9jaGF0aWRfdmFyLmdldCgpLnN0
echo cmlwKCksCiAgICAgICAgfQogICAgICAgIHRyeToKICAgICAgICAgICAgc2F2ZV9pbnN0YW5jZShU
echo T01MX1BBVEgsIGlpZCwgZGF0YSkKICAgICAgICAgICAgbWVzc2FnZWJveC5zaG93aW5mbygiU2F2
echo ZWQiLAogICAgICAgICAgICAgICAgZidJbnN0YW5jZSAie2lpZH0iIHNhdmVkLlxuXG5Eb3VibGUt
echo Y2xpY2sgIG11bHRpX2luc3RhbmNlX3N0YXJ0LmJhdCAgdG8gc3RhcnQuJykKICAgICAgICAgICAg
echo c2VsZi5fcmVmcmVzaF9saXN0KCkKICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAg
echo ICAgICAgIG1lc3NhZ2Vib3guc2hvd2Vycm9yKCJFcnJvciIsIHN0cihlKSkKCiAgICBkZWYgX2Rl
echo bGV0ZShzZWxmKToKICAgICAgICBzZWwgPSBzZWxmLmxpc3Rib3guY3Vyc2VsZWN0aW9uKCkKICAg
echo ICAgICBpZiBub3Qgc2VsOgogICAgICAgICAgICBtZXNzYWdlYm94LnNob3d3YXJuaW5nKCJOb3Ro
echo aW5nIHNlbGVjdGVkIiwgIlNlbGVjdCBhbiBpbnN0YW5jZSBmcm9tIHRoZSBsaXN0IGZpcnN0LiIp
echo CiAgICAgICAgICAgIHJldHVybgogICAgICAgIGlpZCA9IHNlbGYubGlzdGJveC5nZXQoc2VsWzBd
echo KS5zcGxpdCgiICAiKVswXQogICAgICAgIGlmIG1lc3NhZ2Vib3guYXNreWVzbm8oIkRlbGV0ZSIs
echo IGYnRGVsZXRlIGluc3RhbmNlICJ7aWlkfSIgZnJvbSBpbnN0YW5jZXMudG9tbD8nKToKICAgICAg
echo ICAgICAgZGVsZXRlX2luc3RhbmNlKFRPTUxfUEFUSCwgaWlkKQogICAgICAgICAgICBzZWxmLl9y
echo ZWZyZXNoX2xpc3QoKQoKICAgIGRlZiBfbG9hZF9zZWxlY3RlZChzZWxmLCAqXyk6CiAgICAgICAg
echo c2VsID0gc2VsZi5saXN0Ym94LmN1cnNlbGVjdGlvbigpCiAgICAgICAgaWYgbm90IHNlbDoKICAg
echo ICAgICAgICAgcmV0dXJuCiAgICAgICAgaWlkID0gc2VsZi5saXN0Ym94LmdldChzZWxbMF0pLnNw
echo bGl0KCIgICIpWzBdCiAgICAgICAgbWF0Y2ggPSBuZXh0KChpIGZvciBpIGluIGxvYWRfaW5zdGFu
echo Y2VzKFRPTUxfUEFUSCkgaWYgaVsiaWQiXSA9PSBpaWQpLCBOb25lKQogICAgICAgIGlmIG5vdCBt
echo YXRjaDoKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgZW11ID0gbWF0Y2hbImVtdWxhdG9yIl0u
echo c3RyaXAoKS5sb3dlcigpCiAgICAgICAgc2VsZi5lbXVfdmFyLnNldCgiTXVNdSIgaWYgZW11ID09
echo ICJtdW11IiBlbHNlICJMRFBsYXllciIpCiAgICAgICAgc2VsZi5wb3J0X3Zhci5zZXQobWF0Y2hb
echo ImVtdWxhdG9yX3BvcnQiXSkKICAgICAgICBzZWxmLmlkX3Zhci5zZXQobWF0Y2hbImlkIl0pCiAg
echo ICAgICAgc2VsZi5uYW1lX3Zhci5zZXQobWF0Y2hbIm5hbWUiXSkKICAgICAgICBzZWxmLnRhZ192
echo YXIuc2V0KG1hdGNoWyJwbGF5ZXJfdGFnIl0pCiAgICAgICAgc2VsZi5kaXNjb3JkX3Rva2VuX3Zh
echo ci5zZXQobWF0Y2hbImRpc2NvcmRfYm90X3Rva2VuIl0pCiAgICAgICAgc2VsZi5kaXNjb3JkX2No
echo YW5uZWxfdmFyLnNldChtYXRjaFsiZGlzY29yZF9jaGFubmVsX2lkIl0pCiAgICAgICAgc2VsZi5k
echo aXNjb3JkX3VzZXJfdmFyLnNldChtYXRjaFsiZGlzY29yZF9jb250cm9sX3VzZXJfaWQiXSkKICAg
echo ICAgICBzZWxmLmRpc2NvcmRfZ3VpbGRfdmFyLnNldChtYXRjaFsiZGlzY29yZF9jb250cm9sX2d1
echo aWxkX2lkIl0pCiAgICAgICAgc2VsZi5kaXNjb3JkX3dlYmhvb2tfdmFyLnNldChtYXRjaFsid2Vi
echo aG9va191cmwiXSkKICAgICAgICBzZWxmLnRlbGVncmFtX3Rva2VuX3Zhci5zZXQobWF0Y2hbInRl
echo bGVncmFtX2JvdF90b2tlbiJdKQogICAgICAgIHNlbGYudGVsZWdyYW1fY2hhdGlkX3Zhci5zZXQo
echo bWF0Y2hbInRlbGVncmFtX25vdGlmaWNhdGlvbl9jaGF0X2lkIl0pCgogICAgZGVmIF9yZWZyZXNo
echo X2xpc3Qoc2VsZik6CiAgICAgICAgc2VsZi5saXN0Ym94LmRlbGV0ZSgwLCAiZW5kIikKICAgICAg
echo ICBmb3IgaW5zdCBpbiBsb2FkX2luc3RhbmNlcyhUT01MX1BBVEgpOgogICAgICAgICAgICBzZWxm
echo Lmxpc3Rib3guaW5zZXJ0KCJlbmQiLCBmJ3tpbnN0WyJpZCJdfSAgKDp7aW5zdFsiZW11bGF0b3Jf
echo cG9ydCJdfSknKQoKcm9vdCA9IHRrLlRrKCkKQXBwKHJvb3QpCnJvb3QubWFpbmxvb3AoKQo=
) > "%B64FILE%"
certutil -decode "%B64FILE%" "%PYFILE%" >nul 2>&1
if errorlevel 1 (
echo ERROR: certutil failed to decode the embedded script.
pause
goto :cleanup
)
python "%PYFILE%" "%~dp0."
if errorlevel 1 python3 "%PYFILE%" "%~dp0."
:cleanup
del "%B64FILE%" >nul 2>&1
del "%PYFILE%" >nul 2>&1