-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnew-network.example.json
371 lines (371 loc) · 59.9 KB
/
new-network.example.json
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
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
{
"deployment_plan": {
"id": 0,
"name": "Devnet deployment",
"network": "devnet",
"stacks_node": "http://localhost:20443",
"bitcoin_node": "http://px-devnet:px-devnet@localhost:18443",
"genesis": null,
"batches": [
{
"id": 0,
"transactions": [
{
"transaction_type": "RequirementPublish",
"contract_id": "ST1NXBK3K5YYMD6FD41MVNP3JS1GABZ8TRVX023PT.nft-trait",
"remap_sender": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM",
"remap_principals": {
"ST1NXBK3K5YYMD6FD41MVNP3JS1GABZ8TRVX023PT": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM"
},
"source": "KGRlZmluZS10cmFpdCBuZnQtdHJhaXQKICAoCiAgICA7OyBMYXN0IHRva2VuIElELCBsaW1pdGVkIHRvIHVpbnQgcmFuZ2UKICAgIChnZXQtbGFzdC10b2tlbi1pZCAoKSAocmVzcG9uc2UgdWludCB1aW50KSkKCiAgICA7OyBVUkkgZm9yIG1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgdG9rZW4KICAgIChnZXQtdG9rZW4tdXJpICh1aW50KSAocmVzcG9uc2UgKG9wdGlvbmFsIChzdHJpbmctYXNjaWkgMjU2KSkgdWludCkpCgogICAgIDs7IE93bmVyIG9mIGEgZ2l2ZW4gdG9rZW4gaWRlbnRpZmllcgogICAgKGdldC1vd25lciAodWludCkgKHJlc3BvbnNlIChvcHRpb25hbCBwcmluY2lwYWwpIHVpbnQpKQoKICAgIDs7IFRyYW5zZmVyIGZyb20gdGhlIHNlbmRlciB0byBhIG5ldyBwcmluY2lwYWwKICAgICh0cmFuc2ZlciAodWludCBwcmluY2lwYWwgcHJpbmNpcGFsKSAocmVzcG9uc2UgYm9vbCB1aW50KSkKICApCik=",
"clarity_version": 1,
"cost": 4670,
"location": {
"path": "./.cache/requirements/ST1NXBK3K5YYMD6FD41MVNP3JS1GABZ8TRVX023PT.nft-trait.clar"
}
}
],
"epoch": "2.0"
},
{
"id": 1,
"transactions": [
{
"transaction_type": "RequirementPublish",
"contract_id": "ST1NXBK3K5YYMD6FD41MVNP3JS1GABZ8TRVX023PT.sip-010-trait-ft-standard",
"remap_sender": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM",
"remap_principals": {
"ST1NXBK3K5YYMD6FD41MVNP3JS1GABZ8TRVX023PT": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM"
},
"source": "KGRlZmluZS10cmFpdCBzaXAtMDEwLXRyYWl0CiAgKAogICAgOzsgVHJhbnNmZXIgZnJvbSB0aGUgY2FsbGVyIHRvIGEgbmV3IHByaW5jaXBhbAogICAgKHRyYW5zZmVyICh1aW50IHByaW5jaXBhbCBwcmluY2lwYWwgKG9wdGlvbmFsIChidWZmIDM0KSkpIChyZXNwb25zZSBib29sIHVpbnQpKQoKICAgIDs7IHRoZSBodW1hbiByZWFkYWJsZSBuYW1lIG9mIHRoZSB0b2tlbgogICAgKGdldC1uYW1lICgpIChyZXNwb25zZSAoc3RyaW5nLWFzY2lpIDMyKSB1aW50KSkKCiAgICA7OyB0aGUgdGlja2VyIHN5bWJvbCwgb3IgZW1wdHkgaWYgbm9uZQogICAgKGdldC1zeW1ib2wgKCkgKHJlc3BvbnNlIChzdHJpbmctYXNjaWkgMzIpIHVpbnQpKQoKICAgIDs7IHRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdXNlZCwgZS5nLiA2IHdvdWxkIG1lYW4gMV8wMDBfMDAwIHJlcHJlc2VudHMgMSB0b2tlbgogICAgKGdldC1kZWNpbWFscyAoKSAocmVzcG9uc2UgdWludCB1aW50KSkKCiAgICA7OyB0aGUgYmFsYW5jZSBvZiB0aGUgcGFzc2VkIHByaW5jaXBhbAogICAgKGdldC1iYWxhbmNlIChwcmluY2lwYWwpIChyZXNwb25zZSB1aW50IHVpbnQpKQoKICAgIDs7IHRoZSBjdXJyZW50IHRvdGFsIHN1cHBseSAod2hpY2ggZG9lcyBub3QgbmVlZCB0byBiZSBhIGNvbnN0YW50KQogICAgKGdldC10b3RhbC1zdXBwbHkgKCkgKHJlc3BvbnNlIHVpbnQgdWludCkpCgogICAgOzsgYW4gb3B0aW9uYWwgVVJJIHRoYXQgcmVwcmVzZW50cyBtZXRhZGF0YSBvZiB0aGlzIHRva2VuCiAgICAoZ2V0LXRva2VuLXVyaSAoKSAocmVzcG9uc2UgKG9wdGlvbmFsIChzdHJpbmctdXRmOCAyNTYpKSB1aW50KSkKICApCik=",
"clarity_version": 1,
"cost": 8390,
"location": {
"path": "./.cache/requirements/ST1NXBK3K5YYMD6FD41MVNP3JS1GABZ8TRVX023PT.sip-010-trait-ft-standard.clar"
}
}
],
"epoch": "2.05"
},
{
"id": 2,
"transactions": [
{
"transaction_type": "RequirementPublish",
"contract_id": "ST13F481SBR0R7Z6NMMH8YV2FJJYXA5JPA0AD3HP9.subnet-traits-v1",
"remap_sender": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM",
"remap_principals": {
"ST13F481SBR0R7Z6NMMH8YV2FJJYXA5JPA0AD3HP9": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM"
},
"source": "OzsgSW4gb3JkZXIgdG8gc3VwcG9ydCB3aXRoZHJhd2luZyBhbiBhc3NldCB0aGF0IHdhcyBtaW50ZWQgb24gYSBzdWJuZXQsIHRoZQo7OyBMMSBjb250cmFjdCBtdXN0IGltcGxlbWVudCB0aGlzIHRyYWl0LgooZGVmaW5lLXRyYWl0IG1pbnQtZnJvbS1zdWJuZXQtdHJhaXQKICAoCiAgICA7OyBQcm9jZXNzIGEgd2l0aGRyYXdhbCBmcm9tIHRoZSBzdWJuZXQgZm9yIGFuIGFzc2V0IHdoaWNoIGRvZXMgbm90IHlldAogICAgOzsgZXhpc3Qgb24gdGhpcyBuZXR3b3JrLCBhbmQgdGh1cyByZXF1aXJlcyBhIG1pbnQuCiAgICAobWludC1mcm9tLXN1Ym5ldAogICAgICAoCiAgICAgICAgdWludCAgICAgICA7OyBhc3NldC1pZCAoTkZUKSBvciBhbW91bnQgKEZUKQogICAgICAgIHByaW5jaXBhbCAgOzsgc2VuZGVyCiAgICAgICAgcHJpbmNpcGFsICA7OyByZWNpcGllbnQKICAgICAgKQogICAgICAocmVzcG9uc2UgYm9vbCB1aW50KQogICAgKQogICkKKQ==",
"clarity_version": 2,
"cost": 4810,
"location": {
"path": "./.cache/requirements/ST13F481SBR0R7Z6NMMH8YV2FJJYXA5JPA0AD3HP9.subnet-traits-v1.clar"
}
},
{
"transaction_type": "RequirementPublish",
"contract_id": "ST13F481SBR0R7Z6NMMH8YV2FJJYXA5JPA0AD3HP9.subnet-v1-2",
"remap_sender": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM",
"remap_principals": {
"ST13F481SBR0R7Z6NMMH8YV2FJJYXA5JPA0AD3HP9": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM"
},
"source": "OzsgVGhlIC5zdWJuZXQgY29udHJhY3QKCihkZWZpbmUtY29uc3RhbnQgQ09OVFJBQ1RfQUREUkVTUyAoYXMtY29udHJhY3QgdHgtc2VuZGVyKSkKCjs7IEVycm9yIGNvZGVzCihkZWZpbmUtY29uc3RhbnQgRVJSX0JMT0NLX0FMUkVBRFlfQ09NTUlUVEVEIDEpCihkZWZpbmUtY29uc3RhbnQgRVJSX0lOVkFMSURfTUlORVIgMikKKGRlZmluZS1jb25zdGFudCBFUlJfQ09OVFJBQ1RfQ0FMTF9GQUlMRUQgMykKKGRlZmluZS1jb25zdGFudCBFUlJfVFJBTlNGRVJfRkFJTEVEIDQpCihkZWZpbmUtY29uc3RhbnQgRVJSX0RJU0FMTE9XRURfQVNTRVQgNSkKKGRlZmluZS1jb25zdGFudCBFUlJfQVNTRVRfQUxSRUFEWV9BTExPV0VEIDYpCihkZWZpbmUtY29uc3RhbnQgRVJSX01FUktMRV9ST09UX0RPRVNfTk9UX01BVENIIDcpCihkZWZpbmUtY29uc3RhbnQgRVJSX0lOVkFMSURfTUVSS0xFX1JPT1QgOCkKKGRlZmluZS1jb25zdGFudCBFUlJfV0lUSERSQVdBTF9BTFJFQURZX1BST0NFU1NFRCA5KQooZGVmaW5lLWNvbnN0YW50IEVSUl9WQUxJREFUSU9OX0ZBSUxFRCAxMCkKOzs7IFRoZSB2YWx1ZSBzdXBwbGllZCBmb3IgYHRhcmdldC1jaGFpbi10aXBgIGRvZXMgbm90IG1hdGNoIHRoZSBjdXJyZW50IGNoYWluIHRpcC4KKGRlZmluZS1jb25zdGFudCBFUlJfSU5WQUxJRF9DSEFJTl9USVAgMTEpCjs7OyBUaGUgY29udHJhY3Qgd2FzIGNhbGxlZCBiZWZvcmUgcmVhY2hpbmcgdGhpcy1jaGFpbiBoZWlnaHQgcmVhY2hlcyAxLgooZGVmaW5lLWNvbnN0YW50IEVSUl9DQUxMRURfVE9PX0VBUkxZIDEyKQooZGVmaW5lLWNvbnN0YW50IEVSUl9NSU5UX0ZBSUxFRCAxMykKKGRlZmluZS1jb25zdGFudCBFUlJfQVRURU1QVF9UT19UUkFOU0ZFUl9aRVJPX0FNT1VOVCAxNCkKKGRlZmluZS1jb25zdGFudCBFUlJfSU5fQ09NUFVUQVRJT04gMTUpCjs7IFRoZSBjb250cmFjdCBkb2VzIG5vdCBvd24gdGhpcyBORlQgdG8gd2l0aGRyYXcgaXQuCihkZWZpbmUtY29uc3RhbnQgRVJSX05GVF9OT1RfT1dORURfQllfQ09OVFJBQ1QgMTYpCihkZWZpbmUtY29uc3RhbnQgRVJSX1ZBTElEQVRJT05fTEVBRl9GQUlMRUQgMzApCgo7OyBNYXAgZnJvbSBTdGFja3MgYmxvY2sgaGVpZ2h0IHRvIGJsb2NrIGNvbW1pdAooZGVmaW5lLW1hcCBibG9jay1jb21taXRzIHVpbnQgKGJ1ZmYgMzIpKQo7OyBNYXAgcmVjb3JkaW5nIHdpdGhkcmF3YWwgcm9vdHMKKGRlZmluZS1tYXAgd2l0aGRyYXdhbC1yb290cy1tYXAgKGJ1ZmYgMzIpIGJvb2wpCjs7IE1hcCByZWNvcmRpbmcgcHJvY2Vzc2VkIHdpdGhkcmF3YWwgbGVhdmVzCihkZWZpbmUtbWFwIHByb2Nlc3NlZC13aXRoZHJhd2FsLWxlYXZlcy1tYXAgeyB3aXRoZHJhd2FsLWxlYWYtaGFzaDogKGJ1ZmYgMzIpLCB3aXRoZHJhd2FsLXJvb3QtaGFzaDogKGJ1ZmYgMzIpIH0gYm9vbCkKCjs7IHByaW5jaXBhbCB0aGF0IGNhbiBjb21taXQgYmxvY2tzCihkZWZpbmUtZGF0YS12YXIgbWluZXIgcHJpbmNpcGFsIHR4LXNlbmRlcikKOzsgcHJpbmNpcGFsIHRoYXQgY2FuIHJlZ2lzdGVyIGNvbnRyYWN0cwooZGVmaW5lLWRhdGEtdmFyIGFkbWluIHByaW5jaXBhbCB0eC1zZW5kZXIpCgo7OyBNYXAgb2YgYWxsb3dlZCBjb250cmFjdHMgZm9yIGFzc2V0IHRyYW5zZmVycyAtIG1hcHMgTDEgY29udHJhY3QgcHJpbmNpcGFsIHRvIEwyIGNvbnRyYWN0IHByaW5jaXBhbAooZGVmaW5lLW1hcCBhbGxvd2VkLWNvbnRyYWN0cyBwcmluY2lwYWwgcHJpbmNpcGFsKQoKOzsgVXNlIHRyYWl0IGRlY2xhcmF0aW9ucwoodXNlLXRyYWl0IG5mdC10cmFpdCAnU1QxTlhCSzNLNVlZTUQ2RkQ0MU1WTlAzSlMxR0FCWjhUUlZYMDIzUFQubmZ0LXRyYWl0Lm5mdC10cmFpdCkKKHVzZS10cmFpdCBmdC10cmFpdCAnU1QxTlhCSzNLNVlZTUQ2RkQ0MU1WTlAzSlMxR0FCWjhUUlZYMDIzUFQuc2lwLTAxMC10cmFpdC1mdC1zdGFuZGFyZC5zaXAtMDEwLXRyYWl0KQoodXNlLXRyYWl0IG1pbnQtZnJvbS1zdWJuZXQtdHJhaXQgLnN1Ym5ldC10cmFpdHMtdjEubWludC1mcm9tLXN1Ym5ldC10cmFpdCkKCjs7IFVwZGF0ZSB0aGUgbWluZXIgZm9yIHRoaXMgY29udHJhY3QuCihkZWZpbmUtcHVibGljICh1cGRhdGUtbWluZXIgKG5ldy1taW5lciBwcmluY2lwYWwpKQogICAgKGJlZ2luCiAgICAgICAgKGFzc2VydHMhIChpcy1lcSB0eC1zZW5kZXIgKHZhci1nZXQgbWluZXIpKSAoZXJyIEVSUl9JTlZBTElEX01JTkVSKSkKICAgICAgICAob2sgKHZhci1zZXQgbWluZXIgbmV3LW1pbmVyKSkKICAgICkKKQoKOzsgUmVnaXN0ZXIgYSBuZXcgRlQgY29udHJhY3QgdG8gYmUgc3VwcG9ydGVkIGJ5IHRoaXMgc3VibmV0LgooZGVmaW5lLXB1YmxpYyAocmVnaXN0ZXItbmV3LWZ0LWNvbnRyYWN0IChmdC1jb250cmFjdCA8ZnQtdHJhaXQ+KSAobDItY29udHJhY3QgcHJpbmNpcGFsKSkKICAgIChiZWdpbgogICAgICAgIDs7IFZlcmlmeSB0aGF0IHR4LXNlbmRlciBpcyBhbiBhdXRob3JpemVkIGFkbWluCiAgICAgICAgKGFzc2VydHMhIChpcy1hZG1pbiB0eC1zZW5kZXIpIChlcnIgRVJSX0lOVkFMSURfTUlORVIpKQoKICAgICAgICA7OyBTZXQgdXAgdGhlIGFzc2V0cyB0aGF0IHRoZSBjb250cmFjdCBpcyBhbGxvd2VkIHRvIHRyYW5zZmVyCiAgICAgICAgKGFzc2VydHMhIChtYXAtaW5zZXJ0IGFsbG93ZWQtY29udHJhY3RzIChjb250cmFjdC1vZiBmdC1jb250cmFjdCkgbDItY29udHJhY3QpCiAgICAgICAgICAgICAgICAgIChlcnIgRVJSX0FTU0VUX0FMUkVBRFlfQUxMT1dFRCkpCgogICAgICAgIChwcmludCB7CiAgICAgICAgICAgIGV2ZW50OiAicmVnaXN0ZXItY29udHJhY3QiLAogICAgICAgICAgICBhc3NldC10eXBlOiAiZnQiLAogICAgICAgICAgICBsMS1jb250cmFjdDogKGNvbnRyYWN0LW9mIGZ0LWNvbnRyYWN0KSwKICAgICAgICAgICAgbDItY29udHJhY3Q6IGwyLWNvbnRyYWN0CiAgICAgICAgfSkKCiAgICAgICAgKG9rIHRydWUpCiAgICApCikKCjs7IFJlZ2lzdGVyIGEgbmV3IE5GVCBjb250cmFjdCB0byBiZSBzdXBwb3J0ZWQgYnkgdGhpcyBzdWJuZXQuCihkZWZpbmUtcHVibGljIChyZWdpc3Rlci1uZXctbmZ0LWNvbnRyYWN0IChuZnQtY29udHJhY3QgPG5mdC10cmFpdD4pIChsMi1jb250cmFjdCBwcmluY2lwYWwpKQogICAgKGJlZ2luCiAgICAgICAgOzsgVmVyaWZ5IHRoYXQgdHgtc2VuZGVyIGlzIGFuIGF1dGhvcml6ZWQgYWRtaW4KICAgICAgICAoYXNzZXJ0cyEgKGlzLWFkbWluIHR4LXNlbmRlcikgKGVyciBFUlJfSU5WQUxJRF9NSU5FUikpCgogICAgICAgIDs7IFNldCB1cCB0aGUgYXNzZXRzIHRoYXQgdGhlIGNvbnRyYWN0IGlzIGFsbG93ZWQgdG8gdHJhbnNmZXIKICAgICAgICAoYXNzZXJ0cyEgKG1hcC1pbnNlcnQgYWxsb3dlZC1jb250cmFjdHMgKGNvbnRyYWN0LW9mIG5mdC1jb250cmFjdCkgbDItY29udHJhY3QpCiAgICAgICAgICAgICAgICAgIChlcnIgRVJSX0FTU0VUX0FMUkVBRFlfQUxMT1dFRCkpCgogICAgICAgIChwcmludCB7CiAgICAgICAgICAgIGV2ZW50OiAicmVnaXN0ZXItY29udHJhY3QiLAogICAgICAgICAgICBhc3NldC10eXBlOiAibmZ0IiwKICAgICAgICAgICAgbDEtY29udHJhY3Q6IChjb250cmFjdC1vZiBuZnQtY29udHJhY3QpLAogICAgICAgICAgICBsMi1jb250cmFjdDogbDItY29udHJhY3QKICAgICAgICB9KQoKICAgICAgICAob2sgdHJ1ZSkKICAgICkKKQoKOzsgSGVscGVyIGZ1bmN0aW9uOiByZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGdpdmVuIHByaW5jaXBhbCBpcyBhIG1pbmVyCjs7IFJldHVybnMgYm9vbAooZGVmaW5lLXByaXZhdGUgKGlzLW1pbmVyIChtaW5lci10by1jaGVjayBwcmluY2lwYWwpKQogICAgKGlzLWVxIG1pbmVyLXRvLWNoZWNrICh2YXItZ2V0IG1pbmVyKSkKKQoKOzsgSGVscGVyIGZ1bmN0aW9uOiByZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGdpdmVuIHByaW5jaXBhbCBpcyBhbiBhZG1pbgo7OyBSZXR1cm5zIGJvb2wKKGRlZmluZS1wcml2YXRlIChpcy1hZG1pbiAoYWRkci10by1jaGVjayBwcmluY2lwYWwpKQogICAgKGlzLWVxIGFkZHItdG8tY2hlY2sgKHZhci1nZXQgYWRtaW4pKQopCgo7OyBIZWxwZXIgZnVuY3Rpb246IGRldGVybWluZXMgd2hldGhlciB0aGUgY29tbWl0LWJsb2NrIG9wZXJhdGlvbiBzYXRpc2ZpZXMgcHJlLWNvbmRpdGlvbnMKOzsgbGlzdGVkIGluIGBjb21taXQtYmxvY2tgLgo7OyBSZXR1cm5zIHJlc3BvbnNlPGJvb2wsIGludD4KKGRlZmluZS1wcml2YXRlIChjYW4tY29tbWl0LWJsb2NrPyAoY29tbWl0LWJsb2NrLWhlaWdodCB1aW50KSAgKHRhcmdldC1jaGFpbi10aXAgKGJ1ZmYgMzIpKSkKICAgIChiZWdpbgogICAgICAgIDs7IGNoZWNrIG5vIGJsb2NrIGhhcyBiZWVuIGNvbW1pdHRlZCBhdCB0aGlzIGhlaWdodAogICAgICAgIChhc3NlcnRzISAoaXMtbm9uZSAobWFwLWdldD8gYmxvY2stY29tbWl0cyBjb21taXQtYmxvY2staGVpZ2h0KSkgKGVyciBFUlJfQkxPQ0tfQUxSRUFEWV9DT01NSVRURUQpKQoKICAgICAgICA7OyBjaGVjayB0aGF0IGB0YXJnZXQtY2hhaW4tdGlwYCBtYXRjaGVzIHRoZSBidXJuIGNoYWluIHRpcAogICAgICAgIChhc3NlcnRzISAoaXMtZXEKICAgICAgICAgICAgdGFyZ2V0LWNoYWluLXRpcAogICAgICAgICAgICAodW53cmFwISAoZ2V0LWJsb2NrLWluZm8/IGlkLWhlYWRlci1oYXNoICgtIGJsb2NrLWhlaWdodCB1MSkpIChlcnIgRVJSX0NBTExFRF9UT09fRUFSTFkpKSApCiAgICAgICAgICAgIChlcnIgRVJSX0lOVkFMSURfQ0hBSU5fVElQKSkKCiAgICAgICAgOzsgY2hlY2sgdGhhdCB0aGUgdHggc2VuZGVyIGlzIG9uZSBvZiB0aGUgbWluZXJzCiAgICAgICAgKGFzc2VydHMhIChpcy1taW5lciB0eC1zZW5kZXIpIChlcnIgRVJSX0lOVkFMSURfTUlORVIpKQoKICAgICAgICA7OyBjaGVjayB0aGF0IHRoZSBtaW5lciBjYWxsZWQgdGhpcyBjb250cmFjdCBkaXJlY3RseQogICAgICAgIChhc3NlcnRzISAoaXMtbWluZXIgY29udHJhY3QtY2FsbGVyKSAoZXJyIEVSUl9JTlZBTElEX01JTkVSKSkKCiAgICAgICAgKG9rIHRydWUpCiAgICApCikKCjs7IEhlbHBlciBmdW5jdGlvbjogbW9kaWZpZXMgdGhlIGJsb2NrLWNvbW1pdHMgbWFwIHdpdGggYSBuZXcgY29tbWl0IGFuZCBwcmludHMgcmVsYXRlZCBpbmZvCjs7IFJldHVybnMgcmVzcG9uc2U8KGJ1ZmYgMzIpLCA/PgooZGVmaW5lLXByaXZhdGUgKGlubmVyLWNvbW1pdC1ibG9jawogICAgICAgIChibG9jayAoYnVmZiAzMikpCiAgICAgICAgKGNvbW1pdC1ibG9jay1oZWlnaHQgdWludCkKICAgICAgICAodGFyZ2V0LWJ1cm4tYmxvY2staGVpZ2h0IHVpbnQpCiAgICAgICAgKHdpdGhkcmF3YWwtcm9vdCAoYnVmZiAzMikpCiAgICApCiAgICAoYmVnaW4KICAgICAgICAobWFwLXNldCBibG9jay1jb21taXRzIGNvbW1pdC1ibG9jay1oZWlnaHQgYmxvY2spCiAgICAgICAgKG1hcC1zZXQgd2l0aGRyYXdhbC1yb290cy1tYXAgd2l0aGRyYXdhbC1yb290IHRydWUpCiAgICAgICAgKHByaW50IHsKICAgICAgICAgICAgZXZlbnQ6ICJibG9jay1jb21taXQiLAogICAgICAgICAgICBibG9jay1jb21taXQ6IGJsb2NrLAogICAgICAgICAgICBibG9jay1oZWlnaHQ6IGNvbW1pdC1ibG9jay1oZWlnaHQsCiAgICAgICAgICAgIHdpdGhkcmF3YWwtcm9vdDogd2l0aGRyYXdhbC1yb290LAogICAgICAgICAgICB0YXJnZXQtYnVybi1ibG9jay1oZWlnaHQ6IHRhcmdldC1idXJuLWJsb2NrLWhlaWdodAogICAgICAgIH0pCiAgICAgICAgKG9rIGJsb2NrKQogICAgKQopCgo7OyBUaGUgc3VibmV0IG1pbmVyIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gY29tbWl0IGEgYmxvY2sgYXQgYSBwYXJ0aWN1bGFyIGhlaWdodC4KOzsgYGJsb2NrYCBpcyB0aGUgaGFzaCBvZiB0aGUgYmxvY2sgYmVpbmcgc3VibWl0dGVkLgo7OyBgdGFyZ2V0LWNoYWluLXRpcGAgaXMgdGhlIGBpZC1oZWFkZXItaGFzaGAgb2YgdGhlIGJ1cm4gYmxvY2sgKGkuZS4sIGJsb2NrIG9uCjs7ICAgIHRoaXMgY2hhaW4pIHRoYXQgdGhlIG1pbmVyIGludGVuZHMgdG8gYnVpbGQgb2ZmLgo7Owo7OyBGYWlscyBpZjoKOzsgIDEpIHdlIGhhdmUgYWxyZWFkeSBjb21taXR0ZWQgYXQgdGhpcyBibG9jayBoZWlnaHQKOzsgIDIpIGB0YXJnZXQtY2hhaW4tdGlwYCBpcyBub3QgdGhlIGJ1cm4gY2hhaW4gdGlwIChpLmUuLCBvbiB0aGlzIGNoYWluKQo7OyAgMykgdGhlIHNlbmRlciBpcyBub3QgYSBtaW5lcgooZGVmaW5lLXB1YmxpYyAoY29tbWl0LWJsb2NrCiAgICAgICAgKGJsb2NrIChidWZmIDMyKSkKICAgICAgICAoY29tbWl0LWJsb2NrLWhlaWdodCB1aW50KQogICAgICAgICh0YXJnZXQtY2hhaW4tdGlwIChidWZmIDMyKSkKICAgICAgICAod2l0aGRyYXdhbC1yb290IChidWZmIDMyKSkKICAgICkKICAgIChsZXQgKCh0YXJnZXQtYnVybi1ibG9jay1oZWlnaHQgYmxvY2staGVpZ2h0KSkKICAgICAgICAodHJ5ISAoY2FuLWNvbW1pdC1ibG9jaz8gdGFyZ2V0LWJ1cm4tYmxvY2staGVpZ2h0IHRhcmdldC1jaGFpbi10aXApKQogICAgICAgIChpbm5lci1jb21taXQtYmxvY2sgYmxvY2sgY29tbWl0LWJsb2NrLWhlaWdodCB0YXJnZXQtYnVybi1ibG9jay1oZWlnaHQgd2l0aGRyYXdhbC1yb290KQogICAgKQopCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7IEZPUiBORlQgQVNTRVQgVFJBTlNGRVJTCgo7OyBIZWxwZXIgZnVuY3Rpb24gdGhhdCB0cmFuc2ZlcnMgdGhlIHNwZWNpZmllZCBORlQgZnJvbSB0aGUgZ2l2ZW4gc2VuZGVyIHRvIHRoZSBnaXZlbiByZWNpcGllbnQuCjs7IFJldHVybnMgcmVzcG9uc2U8Ym9vbCwgaW50PgooZGVmaW5lLXByaXZhdGUgKGlubmVyLXRyYW5zZmVyLW5mdC1hc3NldAogICAgICAgIChuZnQtY29udHJhY3QgPG5mdC10cmFpdD4pCiAgICAgICAgKGlkIHVpbnQpCiAgICAgICAgKHNlbmRlciBwcmluY2lwYWwpCiAgICAgICAgKHJlY2lwaWVudCBwcmluY2lwYWwpCiAgICApCiAgICAobGV0ICgKICAgICAgICAgICAgKGNhbGwtcmVzdWx0IChjb250cmFjdC1jYWxsPyBuZnQtY29udHJhY3QgdHJhbnNmZXIgaWQgc2VuZGVyIHJlY2lwaWVudCkpCiAgICAgICAgICAgICh0cmFuc2Zlci1yZXN1bHQgKHVud3JhcCEgY2FsbC1yZXN1bHQgKGVyciBFUlJfQ09OVFJBQ1RfQ0FMTF9GQUlMRUQpKSkKICAgICAgICApCiAgICAgICAgOzsgQ2hlY2sgdGhhdCB0aGUgdHJhbnNmZXIgc3VjY2VlZGVkCiAgICAgICAgKGFzc2VydHMhIHRyYW5zZmVyLXJlc3VsdCAoZXJyIEVSUl9UUkFOU0ZFUl9GQUlMRUQpKQoKICAgICAgICAob2sgdHJ1ZSkKICAgICkKKQoKKGRlZmluZS1wcml2YXRlIChpbm5lci1taW50LW5mdC1hc3NldAogICAgICAgIChuZnQtbWludC1jb250cmFjdCA8bWludC1mcm9tLXN1Ym5ldC10cmFpdD4pCiAgICAgICAgKGlkIHVpbnQpCiAgICAgICAgKHNlbmRlciBwcmluY2lwYWwpCiAgICAgICAgKHJlY2lwaWVudCBwcmluY2lwYWwpCiAgICApCiAgICAobGV0ICgKICAgICAgICAgICAgKGNhbGwtcmVzdWx0IChhcy1jb250cmFjdCAoY29udHJhY3QtY2FsbD8gbmZ0LW1pbnQtY29udHJhY3QgbWludC1mcm9tLXN1Ym5ldCBpZCBzZW5kZXIgcmVjaXBpZW50KSkpCiAgICAgICAgICAgIChtaW50LXJlc3VsdCAodW53cmFwISBjYWxsLXJlc3VsdCAoZXJyIEVSUl9DT05UUkFDVF9DQUxMX0ZBSUxFRCkpKQogICAgICAgICkKICAgICAgICA7OyBDaGVjayB0aGF0IHRoZSB0cmFuc2ZlciBzdWNjZWVkZWQKICAgICAgICAoYXNzZXJ0cyEgbWludC1yZXN1bHQgKGVyciBFUlJfTUlOVF9GQUlMRUQpKQoKICAgICAgICAob2sgdHJ1ZSkKICAgICkKKQoKKGRlZmluZS1wcml2YXRlIChpbm5lci10cmFuc2Zlci1vci1taW50LW5mdC1hc3NldAogICAgICAgIChuZnQtY29udHJhY3QgPG5mdC10cmFpdD4pCiAgICAgICAgKG5mdC1taW50LWNvbnRyYWN0IDxtaW50LWZyb20tc3VibmV0LXRyYWl0PikKICAgICAgICAoaWQgdWludCkKICAgICAgICAocmVjaXBpZW50IHByaW5jaXBhbCkKICAgICkKICAgIChsZXQgKAogICAgICAgICAgICAoY2FsbC1yZXN1bHQgKGNvbnRyYWN0LWNhbGw/IG5mdC1jb250cmFjdCBnZXQtb3duZXIgaWQpKQogICAgICAgICAgICAobmZ0LW93bmVyICh1bndyYXAhIGNhbGwtcmVzdWx0IChlcnIgRVJSX0NPTlRSQUNUX0NBTExfRkFJTEVEKSkpCiAgICAgICAgICAgIChjb250cmFjdC1vd25zLW5mdCAoaXMtZXEgbmZ0LW93bmVyIChzb21lIENPTlRSQUNUX0FERFJFU1MpKSkKICAgICAgICAgICAgKG5vLW93bmVyIChpcy1lcSBuZnQtb3duZXIgbm9uZSkpCiAgICAgICAgKQoKICAgICAgICAoaWYgY29udHJhY3Qtb3ducy1uZnQKICAgICAgICAgICAgKGlubmVyLXRyYW5zZmVyLW5mdC1hc3NldCBuZnQtY29udHJhY3QgaWQgQ09OVFJBQ1RfQUREUkVTUyByZWNpcGllbnQpCiAgICAgICAgICAgIChpZiBuby1vd25lcgogICAgICAgICAgICAgICAgOzsgVHJ5IG1pbnRpbmcgdGhlIGFzc2V0IGlmIHRoZXJlIGlzIG5vIGV4aXN0aW5nIG93bmVyIG9mIHRoaXMgTkZUCiAgICAgICAgICAgICAgICAoaW5uZXItbWludC1uZnQtYXNzZXQgbmZ0LW1pbnQtY29udHJhY3QgaWQgQ09OVFJBQ1RfQUREUkVTUyByZWNpcGllbnQpCiAgICAgICAgICAgICAgICA7OyBJbiB0aGlzIGNhc2UsIGEgcHJpbmNpcGFsIG90aGVyIHRoYW4gdGhpcyBjb250cmFjdCBvd25zIHRoaXMgTkZULCBzbyBtaW50aW5nIGlzIG5vdCBwb3NzaWJsZQogICAgICAgICAgICAgICAgKGVyciBFUlJfTUlOVF9GQUlMRUQpCiAgICAgICAgICAgICkKICAgICAgICApCiAgICApCikKCjs7IEEgdXNlciBjYWxscyB0aGlzIGZ1bmN0aW9uIHRvIGRlcG9zaXQgYW4gTkZUIGludG8gdGhlIGNvbnRyYWN0Lgo7OyBUaGUgZnVuY3Rpb24gZW1pdHMgYSBwcmludCB3aXRoIGRldGFpbHMgb2YgdGhpcyBldmVudC4KOzsgUmV0dXJucyByZXNwb25zZTxib29sLCBpbnQ+CihkZWZpbmUtcHVibGljIChkZXBvc2l0LW5mdC1hc3NldAogICAgICAgIChuZnQtY29udHJhY3QgPG5mdC10cmFpdD4pCiAgICAgICAgKGlkIHVpbnQpCiAgICAgICAgKHNlbmRlciBwcmluY2lwYWwpCiAgICApCiAgICAobGV0ICgKICAgICAgICAgICAgOzsgQ2hlY2sgdGhhdCB0aGUgYXNzZXQgYmVsb25ncyB0byB0aGUgYWxsb3dlZC1jb250cmFjdHMgbWFwCiAgICAgICAgICAgIChzdWJuZXQtY29udHJhY3QtaWQgKHVud3JhcCEgKG1hcC1nZXQ/IGFsbG93ZWQtY29udHJhY3RzIChjb250cmFjdC1vZiBuZnQtY29udHJhY3QpKSAoZXJyIEVSUl9ESVNBTExPV0VEX0FTU0VUKSkpCiAgICAgICAgKQoKICAgICAgICA7OyBUcnkgdG8gdHJhbnNmZXIgdGhlIE5GVCB0byB0aGlzIGNvbnRyYWN0CiAgICAgICAgKGFzc2VydHMhICh0cnkhIChpbm5lci10cmFuc2Zlci1uZnQtYXNzZXQgbmZ0LWNvbnRyYWN0IGlkIHNlbmRlciBDT05UUkFDVF9BRERSRVNTKSkgKGVyciBFUlJfVFJBTlNGRVJfRkFJTEVEKSkKCiAgICAgICAgOzsgRW1pdCBhIHByaW50IGV2ZW50IC0gdGhlIG5vZGUgY29uc3VtZXMgdGhpcwogICAgICAgIChwcmludCB7CiAgICAgICAgICAgIGV2ZW50OiAiZGVwb3NpdC1uZnQiLAogICAgICAgICAgICBsMS1jb250cmFjdC1pZDogKGFzLWNvbnRyYWN0IG5mdC1jb250cmFjdCksCiAgICAgICAgICAgIG5mdC1pZDogaWQsCiAgICAgICAgICAgIHNlbmRlcjogc2VuZGVyLAogICAgICAgICAgICBzdWJuZXQtY29udHJhY3QtaWQ6IHN1Ym5ldC1jb250cmFjdC1pZCwKICAgICAgICB9KQoKICAgICAgICAob2sgdHJ1ZSkKICAgICkKKQoKCjs7IEhlbHBlciBmdW5jdGlvbiBmb3IgYHdpdGhkcmF3LW5mdC1hc3NldGAKOzsgUmV0dXJucyByZXNwb25zZTxib29sLCBpbnQ+CihkZWZpbmUtcHVibGljIChpbm5lci13aXRoZHJhdy1uZnQtYXNzZXQKICAgICAgICAobmZ0LWNvbnRyYWN0IDxuZnQtdHJhaXQ+KQogICAgICAgIChsMi1jb250cmFjdCBwcmluY2lwYWwpCiAgICAgICAgKGlkIHVpbnQpCiAgICAgICAgKHJlY2lwaWVudCBwcmluY2lwYWwpCiAgICAgICAgKHdpdGhkcmF3YWwtaWQgdWludCkKICAgICAgICAoaGVpZ2h0IHVpbnQpCiAgICAgICAgKG5mdC1taW50LWNvbnRyYWN0IChvcHRpb25hbCA8bWludC1mcm9tLXN1Ym5ldC10cmFpdD4pKQogICAgICAgICh3aXRoZHJhd2FsLXJvb3QgKGJ1ZmYgMzIpKQogICAgICAgICh3aXRoZHJhd2FsLWxlYWYtaGFzaCAoYnVmZiAzMikpCiAgICAgICAgKHNpYmxpbmctaGFzaGVzIChsaXN0IDUwIHsKICAgICAgICAgICAgaGFzaDogKGJ1ZmYgMzIpLAogICAgICAgICAgICBpcy1sZWZ0LXNpZGU6IGJvb2wsCiAgICAgICAgfSkpCiAgICApCiAgICAobGV0ICgoaGFzaGVzLWFyZS12YWxpZCAoY2hlY2std2l0aGRyYXdhbC1oYXNoZXMgd2l0aGRyYXdhbC1yb290IHdpdGhkcmF3YWwtbGVhZi1oYXNoIHNpYmxpbmctaGFzaGVzKSkpCgogICAgICAgIChhc3NlcnRzISAodHJ5ISBoYXNoZXMtYXJlLXZhbGlkKSAoZXJyIEVSUl9WQUxJREFUSU9OX0ZBSUxFRCkpCgogICAgICAgIDs7IGNoZWNrIHRoYXQgdGhlIHdpdGhkcmF3YWwgcmVxdWVzdCBkYXRhIG1hdGNoZXMgdGhlIHN1cHBsaWVkIGxlYWYgaGFzaAogICAgICAgIChhc3NlcnRzISAoaXMtZXEgd2l0aGRyYXdhbC1sZWFmLWhhc2gKICAgICAgICAgICAgICAgICAgICAgICAgIChsZWFmLWhhc2gtd2l0aGRyYXctbmZ0IGwyLWNvbnRyYWN0IGlkIHJlY2lwaWVudCB3aXRoZHJhd2FsLWlkIGhlaWdodCkpCiAgICAgICAgICAgICAgICAgIChlcnIgRVJSX1ZBTElEQVRJT05fTEVBRl9GQUlMRUQpKQoKICAgICAgICAoYXNzZXJ0cyEKICAgICAgICAgICAgKHRyeSEKICAgICAgICAgICAgICAgIChtYXRjaCBuZnQtbWludC1jb250cmFjdAogICAgICAgICAgICAgICAgICAgIG1pbnQtY29udHJhY3QgKGFzLWNvbnRyYWN0IChpbm5lci10cmFuc2Zlci1vci1taW50LW5mdC1hc3NldCBuZnQtY29udHJhY3QgbWludC1jb250cmFjdCBpZCByZWNpcGllbnQpKQogICAgICAgICAgICAgICAgICAgIChhcy1jb250cmFjdCAoaW5uZXItdHJhbnNmZXItd2l0aG91dC1taW50LW5mdC1hc3NldCBuZnQtY29udHJhY3QgaWQgcmVjaXBpZW50KSkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICAoZXJyIEVSUl9UUkFOU0ZFUl9GQUlMRUQpCiAgICAgICAgKQoKICAgICAgICAoYXNzZXJ0cyEKICAgICAgICAgICAgKGZpbmlzaC13aXRoZHJhdyB7IHdpdGhkcmF3YWwtbGVhZi1oYXNoOiB3aXRoZHJhd2FsLWxlYWYtaGFzaCwgd2l0aGRyYXdhbC1yb290LWhhc2g6IHdpdGhkcmF3YWwtcm9vdCB9KQogICAgICAgICAgICAoZXJyIEVSUl9XSVRIRFJBV0FMX0FMUkVBRFlfUFJPQ0VTU0VEKQogICAgICAgICkKCiAgICAgICAgKG9rIHRydWUpCiAgICApCikKCjs7IEEgdXNlciBjYWxscyB0aGlzIGZ1bmN0aW9uIHRvIHdpdGhkcmF3IHRoZSBzcGVjaWZpZWQgTkZUIGZyb20gdGhpcyBjb250cmFjdC4KOzsgSW4gb3JkZXIgZm9yIHRoaXMgd2l0aGRyYXdhbCB0byBnbyB0aHJvdWdoLCB0aGUgZ2l2ZW4gd2l0aGRyYXdhbCBtdXN0IGhhdmUgYmVlbiBpbmNsdWRlZAo7OyBpbiBhIHdpdGhkcmF3YWwgTWVya2xlIHRyZWUgYSBzdWJuZXQgbWluZXIgc3VibWl0dGVkLiBUaGUgdXNlciBtdXN0IHByb3ZpZGUgdGhlIGxlYWYKOzsgaGFzaCBvZiB0aGVpciB3aXRoZHJhd2FsIGFuZCB0aGUgcm9vdCBoYXNoIG9mIHRoZSBzcGVjaWZpYyBNZXJrbGUgdHJlZSB0aGVpciB3aXRoZHJhd2FsCjs7IGlzIGluY2x1ZGVkIGluLiBUaGV5IG11c3QgYWxzbyBwcm92aWRlIGEgbGlzdCBvZiBzaWJsaW5nIGhhc2hlcy4gVGhlIHdpdGhkcmF3IGZ1bmN0aW9uCjs7IHVzZXMgdGhlIHByb3ZpZGVkIGhhc2hlcyB0byBlbnN1cmUgdGhlIHJlcXVlc3RlZCB3aXRoZHJhd2FsIGlzIHZhbGlkLgo7OyBUaGUgZnVuY3Rpb24gZW1pdHMgYSBwcmludCB3aXRoIGRldGFpbHMgb2YgdGhpcyBldmVudC4KOzsgUmV0dXJucyByZXNwb25zZTxib29sLCBpbnQ+CihkZWZpbmUtcHVibGljICh3aXRoZHJhdy1uZnQtYXNzZXQKICAgICAgICAobmZ0LWNvbnRyYWN0IDxuZnQtdHJhaXQ+KQogICAgICAgIChpZCB1aW50KQogICAgICAgIChyZWNpcGllbnQgcHJpbmNpcGFsKQogICAgICAgICh3aXRoZHJhd2FsLWlkIHVpbnQpCiAgICAgICAgKGhlaWdodCB1aW50KQogICAgICAgIChuZnQtbWludC1jb250cmFjdCAob3B0aW9uYWwgPG1pbnQtZnJvbS1zdWJuZXQtdHJhaXQ+KSkKICAgICAgICAod2l0aGRyYXdhbC1yb290IChidWZmIDMyKSkKICAgICAgICAod2l0aGRyYXdhbC1sZWFmLWhhc2ggKGJ1ZmYgMzIpKQogICAgICAgIChzaWJsaW5nLWhhc2hlcyAobGlzdCA1MCB7CiAgICAgICAgICAgIGhhc2g6IChidWZmIDMyKSwKICAgICAgICAgICAgaXMtbGVmdC1zaWRlOiBib29sLAogICAgICAgIH0pKQogICAgKQogICAgKGxldCAoCiAgICAgICAgICAgIDs7IENoZWNrIHRoYXQgdGhlIGFzc2V0IGJlbG9uZ3MgdG8gdGhlIGFsbG93ZWQtY29udHJhY3RzIG1hcAogICAgICAgICAgICAobDItY29udHJhY3QgKHVud3JhcCEgKG1hcC1nZXQ/IGFsbG93ZWQtY29udHJhY3RzIChjb250cmFjdC1vZiBuZnQtY29udHJhY3QpKSAoZXJyIEVSUl9ESVNBTExPV0VEX0FTU0VUKSkpCiAgICAgICAgKQogICAgICAgIChhc3NlcnRzIQogICAgICAgICAgICAodHJ5ISAoaW5uZXItd2l0aGRyYXctbmZ0LWFzc2V0CiAgICAgICAgICAgICAgICBuZnQtY29udHJhY3QKICAgICAgICAgICAgICAgIGwyLWNvbnRyYWN0CiAgICAgICAgICAgICAgICBpZAogICAgICAgICAgICAgICAgcmVjaXBpZW50CiAgICAgICAgICAgICAgICB3aXRoZHJhd2FsLWlkCiAgICAgICAgICAgICAgICBoZWlnaHQKICAgICAgICAgICAgICAgIG5mdC1taW50LWNvbnRyYWN0CiAgICAgICAgICAgICAgICB3aXRoZHJhd2FsLXJvb3QKICAgICAgICAgICAgICAgIHdpdGhkcmF3YWwtbGVhZi1oYXNoCiAgICAgICAgICAgICAgICBzaWJsaW5nLWhhc2hlcwogICAgICAgICAgICApKQogICAgICAgICAgICAoZXJyIEVSUl9UUkFOU0ZFUl9GQUlMRUQpCiAgICAgICAgKQoKICAgICAgICA7OyBFbWl0IGEgcHJpbnQgZXZlbnQKICAgICAgICAocHJpbnQgewogICAgICAgICAgICBldmVudDogIndpdGhkcmF3LW5mdCIsCiAgICAgICAgICAgIGwxLWNvbnRyYWN0LWlkOiAoYXMtY29udHJhY3QgbmZ0LWNvbnRyYWN0KSwKICAgICAgICAgICAgbmZ0LWlkOiBpZCwKICAgICAgICAgICAgcmVjaXBpZW50OiByZWNpcGllbnQKICAgICAgICB9KQoKICAgICAgICAob2sgdHJ1ZSkKICAgICkKKQoKCjs7IExpa2UgYGlubmVyLXRyYW5zZmVyLW9yLW1pbnQtbmZ0LWFzc2V0IGJ1dCB3aXRob3V0IGFsbG93aW5nIG9yIHJlcXVpcmluZyBhIG1pbnQgZnVuY3Rpb24uIEluIG9yZGVyIHRvIHdpdGhkcmF3LCB0aGUgdXNlciBtdXN0Cjs7IGhhdmUgdGhlIGFwcHJvcHJpYXRlIGJhbGFuY2UuCihkZWZpbmUtcHJpdmF0ZSAoaW5uZXItdHJhbnNmZXItd2l0aG91dC1taW50LW5mdC1hc3NldAogICAgICAgIChuZnQtY29udHJhY3QgPG5mdC10cmFpdD4pCiAgICAgICAgKGlkIHVpbnQpCiAgICAgICAgKHJlY2lwaWVudCBwcmluY2lwYWwpCiAgICApCiAgICAobGV0ICgKICAgICAgICAgICAgKGNhbGwtcmVzdWx0IChjb250cmFjdC1jYWxsPyBuZnQtY29udHJhY3QgZ2V0LW93bmVyIGlkKSkKICAgICAgICAgICAgKG5mdC1vd25lciAodW53cmFwISBjYWxsLXJlc3VsdCAoZXJyIEVSUl9DT05UUkFDVF9DQUxMX0ZBSUxFRCkpKQogICAgICAgICAgICAoY29udHJhY3Qtb3ducy1uZnQgKGlzLWVxIG5mdC1vd25lciAoc29tZSBDT05UUkFDVF9BRERSRVNTKSkpCiAgICAgICAgKQoKICAgICAgICAoYXNzZXJ0cyEgY29udHJhY3Qtb3ducy1uZnQgKGVyciBFUlJfTkZUX05PVF9PV05FRF9CWV9DT05UUkFDVCkpCiAgICAgICAgKGlubmVyLXRyYW5zZmVyLW5mdC1hc3NldCBuZnQtY29udHJhY3QgaWQgQ09OVFJBQ1RfQUREUkVTUyByZWNpcGllbnQpCiAgICApCikKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOzsgRk9SIEZVTkdJQkxFIFRPS0VOIEFTU0VUIFRSQU5TRkVSUwoKOzsgSGVscGVyIGZ1bmN0aW9uIHRoYXQgdHJhbnNmZXJzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiB0aGUgZnVuZ2libGUgdG9rZW4gZnJvbSB0aGUgZ2l2ZW4gc2VuZGVyIHRvIHRoZSBnaXZlbiByZWNpcGllbnQuCjs7IFJldHVybnMgcmVzcG9uc2U8Ym9vbCwgaW50PgooZGVmaW5lLXByaXZhdGUgKGlubmVyLXRyYW5zZmVyLWZ0LWFzc2V0CiAgICAgICAgKGZ0LWNvbnRyYWN0IDxmdC10cmFpdD4pCiAgICAgICAgKGFtb3VudCB1aW50KQogICAgICAgIChzZW5kZXIgcHJpbmNpcGFsKQogICAgICAgIChyZWNpcGllbnQgcHJpbmNpcGFsKQogICAgICAgIChtZW1vIChvcHRpb25hbCAoYnVmZiAzNCkpKQogICAgKQogICAgKGxldCAoCiAgICAgICAgICAgIChjYWxsLXJlc3VsdCAoY29udHJhY3QtY2FsbD8gZnQtY29udHJhY3QgdHJhbnNmZXIgYW1vdW50IHNlbmRlciByZWNpcGllbnQgbWVtbykpCiAgICAgICAgICAgICh0cmFuc2Zlci1yZXN1bHQgKHVud3JhcCEgY2FsbC1yZXN1bHQgKGVyciBFUlJfQ09OVFJBQ1RfQ0FMTF9GQUlMRUQpKSkKICAgICAgICApCiAgICAgICAgOzsgRklYTUU6IFNJUC0wMTAgZG9lc24ndCByZXF1aXJlIHRoYXQgdHJhbnNmZXIgcmV0dXJucyAob2sgdHJ1ZSkgb24gc3VjY2Vzcywgc28gaXMgdGhpcyBjaGVjayBuZWNlc3Nhcnk/CiAgICAgICAgOzsgQ2hlY2sgdGhhdCB0aGUgdHJhbnNmZXIgc3VjY2VlZGVkCiAgICAgICAgKGFzc2VydHMhIHRyYW5zZmVyLXJlc3VsdCAoZXJyIEVSUl9UUkFOU0ZFUl9GQUlMRUQpKQoKICAgICAgICAob2sgdHJ1ZSkKICAgICkKKQoKKGRlZmluZS1wcml2YXRlIChpbm5lci1taW50LWZ0LWFzc2V0CiAgICAgICAgKGZ0LW1pbnQtY29udHJhY3QgPG1pbnQtZnJvbS1zdWJuZXQtdHJhaXQ+KQogICAgICAgIChhbW91bnQgdWludCkKICAgICAgICAoc2VuZGVyIHByaW5jaXBhbCkKICAgICAgICAocmVjaXBpZW50IHByaW5jaXBhbCkKICAgICkKICAgIChsZXQgKAogICAgICAgICAgICAoY2FsbC1yZXN1bHQgKGFzLWNvbnRyYWN0IChjb250cmFjdC1jYWxsPyBmdC1taW50LWNvbnRyYWN0IG1pbnQtZnJvbS1zdWJuZXQgYW1vdW50IHNlbmRlciByZWNpcGllbnQpKSkKICAgICAgICAgICAgKG1pbnQtcmVzdWx0ICh1bndyYXAhIGNhbGwtcmVzdWx0IChlcnIgRVJSX0NPTlRSQUNUX0NBTExfRkFJTEVEKSkpCiAgICAgICAgKQogICAgICAgIDs7IENoZWNrIHRoYXQgdGhlIHRyYW5zZmVyIHN1Y2NlZWRlZAogICAgICAgIChhc3NlcnRzISBtaW50LXJlc3VsdCAoZXJyIEVSUl9NSU5UX0ZBSUxFRCkpCgogICAgICAgIChvayB0cnVlKQogICAgKQopCgooZGVmaW5lLXByaXZhdGUgKGlubmVyLXRyYW5zZmVyLW9yLW1pbnQtZnQtYXNzZXQKICAgICAgICAoZnQtY29udHJhY3QgPGZ0LXRyYWl0PikKICAgICAgICAoZnQtbWludC1jb250cmFjdCA8bWludC1mcm9tLXN1Ym5ldC10cmFpdD4pCiAgICAgICAgKGFtb3VudCB1aW50KQogICAgICAgIChyZWNpcGllbnQgcHJpbmNpcGFsKQogICAgICAgIChtZW1vIChvcHRpb25hbCAoYnVmZiAzNCkpKQogICAgKQogICAgKGxldCAoCiAgICAgICAgICAgIChjYWxsLXJlc3VsdCAoY29udHJhY3QtY2FsbD8gZnQtY29udHJhY3QgZ2V0LWJhbGFuY2UgQ09OVFJBQ1RfQUREUkVTUykpCiAgICAgICAgICAgIChjb250cmFjdC1mdC1iYWxhbmNlICh1bndyYXAhIGNhbGwtcmVzdWx0IChlcnIgRVJSX0NPTlRSQUNUX0NBTExfRkFJTEVEKSkpCiAgICAgICAgICAgIChjb250cmFjdC1vd25zLWVub3VnaCAoPj0gY29udHJhY3QtZnQtYmFsYW5jZSBhbW91bnQpKQogICAgICAgICAgICAoYW1vdW50LXRvLXRyYW5zZmVyIChpZiBjb250cmFjdC1vd25zLWVub3VnaCBhbW91bnQgY29udHJhY3QtZnQtYmFsYW5jZSkpCiAgICAgICAgICAgIChhbW91bnQtdG8tbWludCAoLSBhbW91bnQgYW1vdW50LXRvLXRyYW5zZmVyKSkKICAgICAgICApCgogICAgICAgIDs7IENoZWNrIHRoYXQgdGhlIHRvdGFsIGJhbGFuY2UgYmV0d2VlbiB0aGUgdHJhbnNmZXIgYW5kIG1pbnQgaXMgZXF1YWwgdG8gdGhlIG9yaWdpbmFsIGJhbGFuY2UKICAgICAgICAoYXNzZXJ0cyEgKGlzLWVxIGFtb3VudCAoKyBhbW91bnQtdG8tdHJhbnNmZXIgYW1vdW50LXRvLW1pbnQpKSAoZXJyIEVSUl9JTl9DT01QVVRBVElPTikpCgogICAgICAgIChhbmQKICAgICAgICAgICAgKD4gYW1vdW50LXRvLXRyYW5zZmVyIHUwKQogICAgICAgICAgICAodHJ5ISAoaW5uZXItdHJhbnNmZXItZnQtYXNzZXQgZnQtY29udHJhY3QgYW1vdW50LXRvLXRyYW5zZmVyIENPTlRSQUNUX0FERFJFU1MgcmVjaXBpZW50IG1lbW8pKQogICAgICAgICkKICAgICAgICAoYW5kCiAgICAgICAgICAgICg+IGFtb3VudC10by1taW50IHUwKQogICAgICAgICAgICAodHJ5ISAoaW5uZXItbWludC1mdC1hc3NldCBmdC1taW50LWNvbnRyYWN0IGFtb3VudC10by1taW50IENPTlRSQUNUX0FERFJFU1MgcmVjaXBpZW50KSkKICAgICAgICApCgogICAgICAgIChvayB0cnVlKQogICAgKQopCgo7OyBBIHVzZXIgY2FsbHMgdGhpcyBmdW5jdGlvbiB0byBkZXBvc2l0IGEgZnVuZ2libGUgdG9rZW4gaW50byB0aGUgY29udHJhY3QuCjs7IFRoZSBmdW5jdGlvbiBlbWl0cyBhIHByaW50IHdpdGggZGV0YWlscyBvZiB0aGlzIGV2ZW50Lgo7OyBSZXR1cm5zIHJlc3BvbnNlPGJvb2wsIGludD4KKGRlZmluZS1wdWJsaWMgKGRlcG9zaXQtZnQtYXNzZXQKICAgICAgICAoZnQtY29udHJhY3QgPGZ0LXRyYWl0PikKICAgICAgICAoYW1vdW50IHVpbnQpCiAgICAgICAgKHNlbmRlciBwcmluY2lwYWwpCiAgICAgICAgKG1lbW8gKG9wdGlvbmFsIChidWZmIDM0KSkpCiAgICApCiAgICAobGV0ICgKICAgICAgICAgICAgOzsgQ2hlY2sgdGhhdCB0aGUgYXNzZXQgYmVsb25ncyB0byB0aGUgYWxsb3dlZC1jb250cmFjdHMgbWFwCiAgICAgICAgICAgIChzdWJuZXQtY29udHJhY3QtaWQgKHVud3JhcCEgKG1hcC1nZXQ/IGFsbG93ZWQtY29udHJhY3RzIChjb250cmFjdC1vZiBmdC1jb250cmFjdCkpIChlcnIgRVJSX0RJU0FMTE9XRURfQVNTRVQpKSkKICAgICAgICApCiAgICAgICAgOzsgVHJ5IHRvIHRyYW5zZmVyIHRoZSBGVCB0byB0aGlzIGNvbnRyYWN0CiAgICAgICAgKGFzc2VydHMhICh0cnkhIChpbm5lci10cmFuc2Zlci1mdC1hc3NldCBmdC1jb250cmFjdCBhbW91bnQgc2VuZGVyIENPTlRSQUNUX0FERFJFU1MgbWVtbykpIChlcnIgRVJSX1RSQU5TRkVSX0ZBSUxFRCkpCgogICAgICAgIChsZXQgKAogICAgICAgICAgICAgICAgKGZ0LW5hbWUgKHVud3JhcCEgKGNvbnRyYWN0LWNhbGw/IGZ0LWNvbnRyYWN0IGdldC1uYW1lKSAoZXJyIEVSUl9DT05UUkFDVF9DQUxMX0ZBSUxFRCkpKQogICAgICAgICAgICApCiAgICAgICAgICAgIDs7IEVtaXQgYSBwcmludCBldmVudCAtIHRoZSBub2RlIGNvbnN1bWVzIHRoaXMKICAgICAgICAgICAgKHByaW50IHsKICAgICAgICAgICAgICAgIGV2ZW50OiAiZGVwb3NpdC1mdCIsCiAgICAgICAgICAgICAgICBsMS1jb250cmFjdC1pZDogKGFzLWNvbnRyYWN0IGZ0LWNvbnRyYWN0KSwKICAgICAgICAgICAgICAgIGZ0LW5hbWU6IGZ0LW5hbWUsCiAgICAgICAgICAgICAgICBmdC1hbW91bnQ6IGFtb3VudCwKICAgICAgICAgICAgICAgIHNlbmRlcjogc2VuZGVyLAogICAgICAgICAgICAgICAgc3VibmV0LWNvbnRyYWN0LWlkOiBzdWJuZXQtY29udHJhY3QtaWQsCiAgICAgICAgICAgIH0pCiAgICAgICAgKQoKICAgICAgICAob2sgdHJ1ZSkKICAgICkKKQoKOzsgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyB2YWxpZGl0eSBjaGVja3MgcmVsYXRlZCB0byB0aGUgd2l0aGRyYXdhbCBhbmQgcGVyZm9ybXMgdGhlIHdpdGhkcmF3YWwgYXMgd2VsbC4KOzsgUmV0dXJucyByZXNwb25zZTxib29sLCBpbnQ+CihkZWZpbmUtcHJpdmF0ZSAoaW5uZXItd2l0aGRyYXctZnQtYXNzZXQKICAgICAgICAoZnQtY29udHJhY3QgPGZ0LXRyYWl0PikKICAgICAgICAoYW1vdW50IHVpbnQpCiAgICAgICAgKHJlY2lwaWVudCBwcmluY2lwYWwpCiAgICAgICAgKHdpdGhkcmF3YWwtaWQgdWludCkKICAgICAgICAoaGVpZ2h0IHVpbnQpCiAgICAgICAgKG1lbW8gKG9wdGlvbmFsIChidWZmIDM0KSkpCiAgICAgICAgKGZ0LW1pbnQtY29udHJhY3QgKG9wdGlvbmFsIDxtaW50LWZyb20tc3VibmV0LXRyYWl0PikpCiAgICAgICAgKHdpdGhkcmF3YWwtcm9vdCAoYnVmZiAzMikpCiAgICAgICAgKHdpdGhkcmF3YWwtbGVhZi1oYXNoIChidWZmIDMyKSkKICAgICAgICAoc2libGluZy1oYXNoZXMgKGxpc3QgNTAgewogICAgICAgICAgICBoYXNoOiAoYnVmZiAzMiksCiAgICAgICAgICAgIGlzLWxlZnQtc2lkZTogYm9vbCwKICAgICAgICB9KSkKICAgICkKICAgIChsZXQgKChoYXNoZXMtYXJlLXZhbGlkIChjaGVjay13aXRoZHJhd2FsLWhhc2hlcyB3aXRoZHJhd2FsLXJvb3Qgd2l0aGRyYXdhbC1sZWFmLWhhc2ggc2libGluZy1oYXNoZXMpKSkKICAgICAgICAoYXNzZXJ0cyEgKHRyeSEgaGFzaGVzLWFyZS12YWxpZCkgKGVyciBFUlJfVkFMSURBVElPTl9GQUlMRUQpKQoKICAgICAgICA7OyBjaGVjayB0aGF0IHRoZSB3aXRoZHJhd2FsIHJlcXVlc3QgZGF0YSBtYXRjaGVzIHRoZSBzdXBwbGllZCBsZWFmIGhhc2gKICAgICAgICAoYXNzZXJ0cyEgKGlzLWVxIHdpdGhkcmF3YWwtbGVhZi1oYXNoCiAgICAgICAgICAgICAgICAgICAgICAgICAobGVhZi1oYXNoLXdpdGhkcmF3LWZ0IChjb250cmFjdC1vZiBmdC1jb250cmFjdCkgYW1vdW50IHJlY2lwaWVudCB3aXRoZHJhd2FsLWlkIGhlaWdodCkpCiAgICAgICAgICAgICAgICAgIChlcnIgRVJSX1ZBTElEQVRJT05fTEVBRl9GQUlMRUQpKQoKICAgICAgICAoYXNzZXJ0cyEKICAgICAgICAgICAgKHRyeSEKICAgICAgICAgICAgICAgIChtYXRjaCBmdC1taW50LWNvbnRyYWN0CiAgICAgICAgICAgICAgICAgICAgbWludC1jb250cmFjdCAoYXMtY29udHJhY3QgKGlubmVyLXRyYW5zZmVyLW9yLW1pbnQtZnQtYXNzZXQgZnQtY29udHJhY3QgbWludC1jb250cmFjdCBhbW91bnQgcmVjaXBpZW50IG1lbW8pKQogICAgICAgICAgICAgICAgICAgIChhcy1jb250cmFjdCAoaW5uZXItdHJhbnNmZXItZnQtYXNzZXQgZnQtY29udHJhY3QgYW1vdW50IENPTlRSQUNUX0FERFJFU1MgcmVjaXBpZW50IG1lbW8pKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIChlcnIgRVJSX1RSQU5TRkVSX0ZBSUxFRCkKICAgICAgICApCgogICAgICAgIChhc3NlcnRzIQogICAgICAgICAgKGZpbmlzaC13aXRoZHJhdyB7IHdpdGhkcmF3YWwtbGVhZi1oYXNoOiB3aXRoZHJhd2FsLWxlYWYtaGFzaCwgd2l0aGRyYXdhbC1yb290LWhhc2g6IHdpdGhkcmF3YWwtcm9vdCB9KQogICAgICAgICAgKGVyciBFUlJfV0lUSERSQVdBTF9BTFJFQURZX1BST0NFU1NFRCkpCgogICAgICAgIChvayB0cnVlKQogICAgKQopCgo7OyBBIHVzZXIgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbiB0byB3aXRoZHJhdyBzb21lIGFtb3VudCBvZiBhIGZ1bmdpYmxlIHRva2VuIGFzc2V0IGZyb20gdGhlCjs7IGNvbnRyYWN0IGFuZCBzZW5kIGl0IHRvIGEgcmVjaXBpZW50Lgo7OyBJbiBvcmRlciBmb3IgdGhpcyB3aXRoZHJhd2FsIHRvIGdvIHRocm91Z2gsIHRoZSBnaXZlbiB3aXRoZHJhd2FsIG11c3QgaGF2ZSBiZWVuIGluY2x1ZGVkCjs7IGluIGEgd2l0aGRyYXdhbCBNZXJrbGUgdHJlZSBhIHN1Ym5ldCBtaW5lciBzdWJtaXR0ZWQuIFRoZSB1c2VyIG11c3QgcHJvdmlkZSB0aGUgbGVhZgo7OyBoYXNoIG9mIHRoZWlyIHdpdGhkcmF3YWwgYW5kIHRoZSByb290IGhhc2ggb2YgdGhlIHNwZWNpZmljIE1lcmtsZSB0cmVlIHRoZWlyIHdpdGhkcmF3YWwKOzsgaXMgaW5jbHVkZWQgaW4uIFRoZXkgbXVzdCBhbHNvIHByb3ZpZGUgYSBsaXN0IG9mIHNpYmxpbmcgaGFzaGVzLiBUaGUgd2l0aGRyYXcgZnVuY3Rpb24KOzsgdXNlcyB0aGUgcHJvdmlkZWQgaGFzaGVzIHRvIGVuc3VyZSB0aGUgcmVxdWVzdGVkIHdpdGhkcmF3YWwgaXMgdmFsaWQuCjs7IFRoZSBmdW5jdGlvbiBlbWl0cyBhIHByaW50IHdpdGggZGV0YWlscyBvZiB0aGlzIGV2ZW50Lgo7OyBSZXR1cm5zIHJlc3BvbnNlPGJvb2wsIGludD4KKGRlZmluZS1wdWJsaWMgKHdpdGhkcmF3LWZ0LWFzc2V0CiAgICAgICAgKGZ0LWNvbnRyYWN0IDxmdC10cmFpdD4pCiAgICAgICAgKGFtb3VudCB1aW50KQogICAgICAgIChyZWNpcGllbnQgcHJpbmNpcGFsKQogICAgICAgICh3aXRoZHJhd2FsLWlkIHVpbnQpCiAgICAgICAgKGhlaWdodCB1aW50KQogICAgICAgIChtZW1vIChvcHRpb25hbCAoYnVmZiAzNCkpKQogICAgICAgIChmdC1taW50LWNvbnRyYWN0IChvcHRpb25hbCA8bWludC1mcm9tLXN1Ym5ldC10cmFpdD4pKQogICAgICAgICh3aXRoZHJhd2FsLXJvb3QgKGJ1ZmYgMzIpKQogICAgICAgICh3aXRoZHJhd2FsLWxlYWYtaGFzaCAoYnVmZiAzMikpCiAgICAgICAgKHNpYmxpbmctaGFzaGVzIChsaXN0IDUwIHsKICAgICAgICAgICAgaGFzaDogKGJ1ZmYgMzIpLAogICAgICAgICAgICBpcy1sZWZ0LXNpZGU6IGJvb2wsCiAgICAgICAgfSkpCiAgICApCiAgICAoYmVnaW4KICAgICAgICA7OyBDaGVjayB0aGF0IHRoZSB3aXRoZHJhdyBhbW91bnQgaXMgcG9zaXRpdmUKICAgICAgICAoYXNzZXJ0cyEgKD4gYW1vdW50IHUwKSAoZXJyIEVSUl9BVFRFTVBUX1RPX1RSQU5TRkVSX1pFUk9fQU1PVU5UKSkKCiAgICAgICAgOzsgQ2hlY2sgdGhhdCB0aGUgYXNzZXQgYmVsb25ncyB0byB0aGUgYWxsb3dlZC1jb250cmFjdHMgbWFwCiAgICAgICAgKHVud3JhcCEgKG1hcC1nZXQ/IGFsbG93ZWQtY29udHJhY3RzIChjb250cmFjdC1vZiBmdC1jb250cmFjdCkpIChlcnIgRVJSX0RJU0FMTE9XRURfQVNTRVQpKQoKICAgICAgICAoYXNzZXJ0cyEKICAgICAgICAgICAgKHRyeSEgKGlubmVyLXdpdGhkcmF3LWZ0LWFzc2V0CiAgICAgICAgICAgICAgICBmdC1jb250cmFjdAogICAgICAgICAgICAgICAgYW1vdW50CiAgICAgICAgICAgICAgICByZWNpcGllbnQKICAgICAgICAgICAgICAgIHdpdGhkcmF3YWwtaWQKICAgICAgICAgICAgICAgIGhlaWdodAogICAgICAgICAgICAgICAgbWVtbwogICAgICAgICAgICAgICAgZnQtbWludC1jb250cmFjdAogICAgICAgICAgICAgICAgd2l0aGRyYXdhbC1yb290CiAgICAgICAgICAgICAgICB3aXRoZHJhd2FsLWxlYWYtaGFzaAogICAgICAgICAgICAgICAgc2libGluZy1oYXNoZXMpKQogICAgICAgICAgICAoZXJyIEVSUl9UUkFOU0ZFUl9GQUlMRUQpCiAgICAgICAgKQoKICAgICAgICAobGV0ICgKICAgICAgICAgICAgICAgIChmdC1uYW1lICh1bndyYXAhIChjb250cmFjdC1jYWxsPyBmdC1jb250cmFjdCBnZXQtbmFtZSkgKGVyciBFUlJfQ09OVFJBQ1RfQ0FMTF9GQUlMRUQpKSkKICAgICAgICAgICAgKQogICAgICAgICAgICA7OyBFbWl0IGEgcHJpbnQgZXZlbnQKICAgICAgICAgICAgKHByaW50IHsKICAgICAgICAgICAgICAgIGV2ZW50OiAid2l0aGRyYXctZnQiLAogICAgICAgICAgICAgICAgbDEtY29udHJhY3QtaWQ6IChhcy1jb250cmFjdCBmdC1jb250cmFjdCksCiAgICAgICAgICAgICAgICBmdC1uYW1lOiBmdC1uYW1lLAogICAgICAgICAgICAgICAgZnQtYW1vdW50OiBhbW91bnQsCiAgICAgICAgICAgICAgICByZWNpcGllbnQ6IHJlY2lwaWVudCwKICAgICAgICAgICAgfSkKICAgICAgICApCgogICAgICAgIChvayB0cnVlKQogICAgKQopCgoKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7IEZPUiBTVFggVFJBTlNGRVJTCgoKOzsgSGVscGVyIGZ1bmN0aW9uIHRoYXQgdHJhbnNmZXJzIHRoZSBnaXZlbiBhbW91bnQgZnJvbSB0aGUgc3BlY2lmaWVkIGZ1bmdpYmxlIHRva2VuIGZyb20gdGhlIGdpdmVuIHNlbmRlciB0byB0aGUgZ2l2ZW4gcmVjaXBpZW50Lgo7OyBSZXR1cm5zIHJlc3BvbnNlPGJvb2wsIGludD4KKGRlZmluZS1wcml2YXRlIChpbm5lci10cmFuc2Zlci1zdHggKGFtb3VudCB1aW50KSAoc2VuZGVyIHByaW5jaXBhbCkgKHJlY2lwaWVudCBwcmluY2lwYWwpKQogICAgKGxldCAoCiAgICAgICAgICAgIChjYWxsLXJlc3VsdCAoc3R4LXRyYW5zZmVyPyBhbW91bnQgc2VuZGVyIHJlY2lwaWVudCkpCiAgICAgICAgICAgICh0cmFuc2Zlci1yZXN1bHQgKHVud3JhcCEgY2FsbC1yZXN1bHQgKGVyciBFUlJfVFJBTlNGRVJfRkFJTEVEKSkpCiAgICAgICAgKQogICAgICAgIDs7IENoZWNrIHRoYXQgdGhlIHRyYW5zZmVyIHN1Y2NlZWRlZAogICAgICAgIChhc3NlcnRzISB0cmFuc2Zlci1yZXN1bHQgKGVyciBFUlJfVFJBTlNGRVJfRkFJTEVEKSkKCiAgICAgICAgKG9rIHRydWUpCiAgICApCikKCjs7IEEgdXNlciBjYWxscyB0aGlzIGZ1bmN0aW9uIHRvIGRlcG9zaXQgU1RYIGludG8gdGhlIGNvbnRyYWN0Lgo7OyBUaGUgZnVuY3Rpb24gZW1pdHMgYSBwcmludCB3aXRoIGRldGFpbHMgb2YgdGhpcyBldmVudC4KOzsgUmV0dXJucyByZXNwb25zZTxib29sLCBpbnQ+CihkZWZpbmUtcHVibGljIChkZXBvc2l0LXN0eCAoYW1vdW50IHVpbnQpIChzZW5kZXIgcHJpbmNpcGFsKSkKICAgIChiZWdpbgogICAgICAgIDs7IFRyeSB0byB0cmFuc2ZlciB0aGUgU1RYIHRvIHRoaXMgY29udHJhY3QKICAgICAgICAoYXNzZXJ0cyEgKHRyeSEgKGlubmVyLXRyYW5zZmVyLXN0eCBhbW91bnQgc2VuZGVyIENPTlRSQUNUX0FERFJFU1MpKSAoZXJyIEVSUl9UUkFOU0ZFUl9GQUlMRUQpKQoKICAgICAgICA7OyBFbWl0IGEgcHJpbnQgZXZlbnQgLSB0aGUgbm9kZSBjb25zdW1lcyB0aGlzCiAgICAgICAgKHByaW50IHsgZXZlbnQ6ICJkZXBvc2l0LXN0eCIsIHNlbmRlcjogc2VuZGVyLCBhbW91bnQ6IGFtb3VudCB9KQoKICAgICAgICAob2sgdHJ1ZSkKICAgICkKKQoKKGRlZmluZS1yZWFkLW9ubHkgKGxlYWYtaGFzaC13aXRoZHJhdy1zdHgKICAgICAgICAoYW1vdW50IHVpbnQpCiAgICAgICAgKHJlY2lwaWVudCBwcmluY2lwYWwpCiAgICAgICAgKHdpdGhkcmF3YWwtaWQgdWludCkKICAgICAgICAoaGVpZ2h0IHVpbnQpCiAgICApCiAgICAoc2hhNTEyLzI1NiAoY29uY2F0IDB4MDAgKHVud3JhcC1wYW5pYyAodG8tY29uc2Vuc3VzLWJ1ZmY/CiAgICAgICAgewogICAgICAgICAgICB0eXBlOiAic3R4IiwKICAgICAgICAgICAgYW1vdW50OiBhbW91bnQsCiAgICAgICAgICAgIHJlY2lwaWVudDogcmVjaXBpZW50LAogICAgICAgICAgICB3aXRoZHJhd2FsLWlkOiB3aXRoZHJhd2FsLWlkLAogICAgICAgICAgICBoZWlnaHQ6IGhlaWdodAogICAgICAgIH0pKSkKICAgICkKKQoKKGRlZmluZS1yZWFkLW9ubHkgKGxlYWYtaGFzaC13aXRoZHJhdy1uZnQKICAgICAgICAoYXNzZXQtY29udHJhY3QgcHJpbmNpcGFsKQogICAgICAgIChuZnQtaWQgdWludCkKICAgICAgICAocmVjaXBpZW50IHByaW5jaXBhbCkKICAgICAgICAod2l0aGRyYXdhbC1pZCB1aW50KQogICAgICAgIChoZWlnaHQgdWludCkKICAgICkKICAgIChzaGE1MTIvMjU2IChjb25jYXQgMHgwMCAodW53cmFwLXBhbmljICh0by1jb25zZW5zdXMtYnVmZj8KICAgICAgICB7CiAgICAgICAgICAgIHR5cGU6ICJuZnQiLAogICAgICAgICAgICBuZnQtaWQ6IG5mdC1pZCwKICAgICAgICAgICAgYXNzZXQtY29udHJhY3Q6IGFzc2V0LWNvbnRyYWN0LAogICAgICAgICAgICByZWNpcGllbnQ6IHJlY2lwaWVudCwKICAgICAgICAgICAgd2l0aGRyYXdhbC1pZDogd2l0aGRyYXdhbC1pZCwKICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQKICAgICAgICB9KSkpCiAgICApCikKCihkZWZpbmUtcmVhZC1vbmx5IChsZWFmLWhhc2gtd2l0aGRyYXctZnQKICAgICAgICAoYXNzZXQtY29udHJhY3QgcHJpbmNpcGFsKQogICAgICAgIChhbW91bnQgdWludCkKICAgICAgICAocmVjaXBpZW50IHByaW5jaXBhbCkKICAgICAgICAod2l0aGRyYXdhbC1pZCB1aW50KQogICAgICAgIChoZWlnaHQgdWludCkKICAgICkKICAgIChzaGE1MTIvMjU2IChjb25jYXQgMHgwMCAodW53cmFwLXBhbmljICh0by1jb25zZW5zdXMtYnVmZj8KICAgICAgICB7CiAgICAgICAgICAgIHR5cGU6ICJmdCIsCiAgICAgICAgICAgIGFtb3VudDogYW1vdW50LAogICAgICAgICAgICBhc3NldC1jb250cmFjdDogYXNzZXQtY29udHJhY3QsCiAgICAgICAgICAgIHJlY2lwaWVudDogcmVjaXBpZW50LAogICAgICAgICAgICB3aXRoZHJhd2FsLWlkOiB3aXRoZHJhd2FsLWlkLAogICAgICAgICAgICBoZWlnaHQ6IGhlaWdodAogICAgICAgIH0pKSkKICAgICkKKQoKOzsgQSB1c2VyIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gd2l0aGRyYXcgU1RYIGZyb20gdGhpcyBjb250cmFjdC4KOzsgSW4gb3JkZXIgZm9yIHRoaXMgd2l0aGRyYXdhbCB0byBnbyB0aHJvdWdoLCB0aGUgZ2l2ZW4gd2l0aGRyYXdhbCBtdXN0IGhhdmUgYmVlbiBpbmNsdWRlZAo7OyBpbiBhIHdpdGhkcmF3YWwgTWVya2xlIHRyZWUgYSBzdWJuZXQgbWluZXIgc3VibWl0dGVkLiBUaGUgdXNlciBtdXN0IHByb3ZpZGUgdGhlIGxlYWYKOzsgaGFzaCBvZiB0aGVpciB3aXRoZHJhd2FsIGFuZCB0aGUgcm9vdCBoYXNoIG9mIHRoZSBzcGVjaWZpYyBNZXJrbGUgdHJlZSB0aGVpciB3aXRoZHJhd2FsCjs7IGlzIGluY2x1ZGVkIGluLiBUaGV5IG11c3QgYWxzbyBwcm92aWRlIGEgbGlzdCBvZiBzaWJsaW5nIGhhc2hlcy4gVGhlIHdpdGhkcmF3IGZ1bmN0aW9uCjs7IHVzZXMgdGhlIHByb3ZpZGVkIGhhc2hlcyB0byBlbnN1cmUgdGhlIHJlcXVlc3RlZCB3aXRoZHJhd2FsIGlzIHZhbGlkLgo7OyBUaGUgZnVuY3Rpb24gZW1pdHMgYSBwcmludCB3aXRoIGRldGFpbHMgb2YgdGhpcyBldmVudC4KOzsgUmV0dXJucyByZXNwb25zZTxib29sLCBpbnQ+CihkZWZpbmUtcHVibGljICh3aXRoZHJhdy1zdHgKICAgICAgICAoYW1vdW50IHVpbnQpCiAgICAgICAgKHJlY2lwaWVudCBwcmluY2lwYWwpCiAgICAgICAgKHdpdGhkcmF3YWwtaWQgdWludCkKICAgICAgICAoaGVpZ2h0IHVpbnQpCiAgICAgICAgKHdpdGhkcmF3YWwtcm9vdCAoYnVmZiAzMikpCiAgICAgICAgKHdpdGhkcmF3YWwtbGVhZi1oYXNoIChidWZmIDMyKSkKICAgICAgICAoc2libGluZy1oYXNoZXMgKGxpc3QgNTAgewogICAgICAgICAgICBoYXNoOiAoYnVmZiAzMiksCiAgICAgICAgICAgIGlzLWxlZnQtc2lkZTogYm9vbCwKICAgICAgICB9KSkKICAgICkKICAgIChsZXQgKChoYXNoZXMtYXJlLXZhbGlkIChjaGVjay13aXRoZHJhd2FsLWhhc2hlcyB3aXRoZHJhd2FsLXJvb3Qgd2l0aGRyYXdhbC1sZWFmLWhhc2ggc2libGluZy1oYXNoZXMpKSkKCiAgICAgICAgKGFzc2VydHMhICh0cnkhIGhhc2hlcy1hcmUtdmFsaWQpIChlcnIgRVJSX1ZBTElEQVRJT05fRkFJTEVEKSkKICAgICAgICA7OyBjaGVjayB0aGF0IHRoZSB3aXRoZHJhd2FsIHJlcXVlc3QgZGF0YSBtYXRjaGVzIHRoZSBzdXBwbGllZCBsZWFmIGhhc2gKICAgICAgICAoYXNzZXJ0cyEgKGlzLWVxIHdpdGhkcmF3YWwtbGVhZi1oYXNoCiAgICAgICAgICAgICAgICAgICAgICAgICAobGVhZi1oYXNoLXdpdGhkcmF3LXN0eCBhbW91bnQgcmVjaXBpZW50IHdpdGhkcmF3YWwtaWQgaGVpZ2h0KSkKICAgICAgICAgICAgICAgICAgKGVyciBFUlJfVkFMSURBVElPTl9MRUFGX0ZBSUxFRCkpCgogICAgICAgIChhc3NlcnRzISAodHJ5ISAoYXMtY29udHJhY3QgKGlubmVyLXRyYW5zZmVyLXN0eCBhbW91bnQgdHgtc2VuZGVyIHJlY2lwaWVudCkpKSAoZXJyIEVSUl9UUkFOU0ZFUl9GQUlMRUQpKQoKICAgICAgICAoYXNzZXJ0cyEKICAgICAgICAgIChmaW5pc2gtd2l0aGRyYXcgeyB3aXRoZHJhd2FsLWxlYWYtaGFzaDogd2l0aGRyYXdhbC1sZWFmLWhhc2gsIHdpdGhkcmF3YWwtcm9vdC1oYXNoOiB3aXRoZHJhd2FsLXJvb3QgfSkKICAgICAgICAgIChlcnIgRVJSX1dJVEhEUkFXQUxfQUxSRUFEWV9QUk9DRVNTRUQpKQoKICAgICAgICA7OyBFbWl0IGEgcHJpbnQgZXZlbnQKICAgICAgICAocHJpbnQgeyBldmVudDogIndpdGhkcmF3LXN0eCIsIHJlY2lwaWVudDogcmVjaXBpZW50LCBhbW91bnQ6IGFtb3VudCB9KQoKICAgICAgICAob2sgdHJ1ZSkKICAgICkKKQoKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7OyBHRU5FUkFMIFdJVEhEUkFXQUwgRlVOQ1RJT05TCgo7OyBUaGlzIGZ1bmN0aW9uIGNvbmNhdHMgdGhlIHR3byBnaXZlbiBoYXNoZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuIEl0IGFsc28gcHJlcGVuZHMgdGhlIGJ1ZmYgYDB4MDFgLCB3aGljaCBpcwo7OyBhIHRhZyBkZW5vdGluZyBhIG5vZGUgKHZlcnN1cyBhIGxlYWYpLgo7OyBSZXR1cm5zIGEgYnVmZgooZGVmaW5lLXByaXZhdGUgKGNyZWF0ZS1ub2RlLWhhc2gKICAgICAgICAoY3Vyci1oYXNoIChidWZmIDMyKSkKICAgICAgICAoc2libGluZy1oYXNoIChidWZmIDMyKSkKICAgICAgICAoaXMtc2libGluZy1sZWZ0LXNpZGUgYm9vbCkKICAgICkKICAgIChsZXQgKAogICAgICAgICAgICAoY29uY2F0dGVkLWhhc2ggKGlmIGlzLXNpYmxpbmctbGVmdC1zaWRlCiAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCBzaWJsaW5nLWhhc2ggY3Vyci1oYXNoKQogICAgICAgICAgICAgICAgICAgIChjb25jYXQgY3Vyci1oYXNoIHNpYmxpbmctaGFzaCkKICAgICAgICAgICAgICAgICkpCiAgICAgICAgICApCgogICAgICAgICAgKGNvbmNhdCAweDAxIGNvbmNhdHRlZC1oYXNoKQogICAgKQopCgo7OyBUaGlzIGZ1bmN0aW9uIGhhc2hlcyB0aGUgY3VyciBoYXNoIHdpdGggaXRzIHNpYmxpbmcgaGFzaC4KOzsgUmV0dXJucyAoYnVmZiAzMikKKGRlZmluZS1wcml2YXRlIChoYXNoLWhlbHAKICAgICAgICAoc2libGluZyB7CiAgICAgICAgICAgIGhhc2g6IChidWZmIDMyKSwKICAgICAgICAgICAgaXMtbGVmdC1zaWRlOiBib29sLAogICAgICAgIH0pCiAgICAgICAgKGN1cnItbm9kZS1oYXNoIChidWZmIDMyKSkKICAgICkKICAgIChsZXQgKAogICAgICAgICAgICAoc2libGluZy1oYXNoIChnZXQgaGFzaCBzaWJsaW5nKSkKICAgICAgICAgICAgKGlzLXNpYmxpbmctbGVmdC1zaWRlIChnZXQgaXMtbGVmdC1zaWRlIHNpYmxpbmcpKQogICAgICAgICAgICAobmV3LWJ1ZmYgKGNyZWF0ZS1ub2RlLWhhc2ggY3Vyci1ub2RlLWhhc2ggc2libGluZy1oYXNoIGlzLXNpYmxpbmctbGVmdC1zaWRlKSkKICAgICAgICApCiAgICAgICAoc2hhNTEyLzI1NiBuZXctYnVmZikKICAgICkKKQoKOzsgVGhpcyBmdW5jdGlvbiBjaGVja3M6Cjs7ICAtIFRoYXQgdGhlIHByb3ZpZGVkIHdpdGhkcmF3YWwgcm9vdCBtYXRjaGVzIGEgcHJldmlvdXNseSBzdWJtaXR0ZWQgb25lIChwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGBjb21taXQtYmxvY2tgKQo7OyAgLSBUaGF0IHRoZSBjb21wdXRlZCB3aXRoZHJhd2FsIHJvb3QgbWF0Y2hlcyBhIHByZXZpb3VzIHZhbGlkIHdpdGhkcmF3YWwgcm9vdAo7OyAgLSBUaGF0IHRoZSBnaXZlbiB3aXRoZHJhd2FsIGxlYWYgaGFzaCBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBwcm9jZXNzZWQKOzsgUmV0dXJucyByZXNwb25zZTxib29sLCBpbnQ+CihkZWZpbmUtcHJpdmF0ZSAoY2hlY2std2l0aGRyYXdhbC1oYXNoZXMKICAgICAgICAod2l0aGRyYXdhbC1yb290IChidWZmIDMyKSkKICAgICAgICAod2l0aGRyYXdhbC1sZWFmLWhhc2ggKGJ1ZmYgMzIpKQogICAgICAgIChzaWJsaW5nLWhhc2hlcyAobGlzdCA1MCB7CiAgICAgICAgICAgIGhhc2g6IChidWZmIDMyKSwKICAgICAgICAgICAgaXMtbGVmdC1zaWRlOiBib29sLAogICAgICAgIH0pKQogICAgKQogICAgKGJlZ2luCiAgICAgICAgOzsgQ2hlY2sgdGhhdCB0aGUgdXNlciBzdWJtaXR0ZWQgYSB2YWxpZCB3aXRoZHJhd2FsIHJvb3QKICAgICAgICAoYXNzZXJ0cyEgKGlzLXNvbWUgKG1hcC1nZXQ/IHdpdGhkcmF3YWwtcm9vdHMtbWFwIHdpdGhkcmF3YWwtcm9vdCkpIChlcnIgRVJSX0lOVkFMSURfTUVSS0xFX1JPT1QpKQoKICAgICAgICA7OyBDaGVjayB0aGF0IHRoaXMgd2l0aGRyYXdhbCBsZWFmIGhhcyBub3QgYmVlbiBwcm9jZXNzZWQgYmVmb3JlCiAgICAgICAgKGFzc2VydHMhCiAgICAgICAgICAgIChpcy1ub25lCiAgICAgICAgICAgICAobWFwLWdldD8gcHJvY2Vzc2VkLXdpdGhkcmF3YWwtbGVhdmVzLW1hcAogICAgICAgICAgICAgICAgICAgICAgIHsgd2l0aGRyYXdhbC1sZWFmLWhhc2g6IHdpdGhkcmF3YWwtbGVhZi1oYXNoLCB3aXRoZHJhd2FsLXJvb3QtaGFzaDogd2l0aGRyYXdhbC1yb290IH0pKQogICAgICAgICAgICAoZXJyIEVSUl9XSVRIRFJBV0FMX0FMUkVBRFlfUFJPQ0VTU0VEKSkKCiAgICAgICAgKGxldCAoKGNhbGN1bGF0ZWQtd2l0aGRyYXdhbC1yb290IChmb2xkIGhhc2gtaGVscCBzaWJsaW5nLWhhc2hlcyB3aXRoZHJhd2FsLWxlYWYtaGFzaCkpCiAgICAgICAgICAgICAgKHJvb3RzLW1hdGNoIChpcy1lcSBjYWxjdWxhdGVkLXdpdGhkcmF3YWwtcm9vdCB3aXRoZHJhd2FsLXJvb3QpKSkKICAgICAgICAgICAgIChpZiByb290cy1tYXRjaAogICAgICAgICAgICAgICAgKG9rIHRydWUpCiAgICAgICAgICAgICAgICAoZXJyIEVSUl9NRVJLTEVfUk9PVF9ET0VTX05PVF9NQVRDSCkpCiAgICAgICAgKQogICAgKQopCgo7OyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGFzc2V0IGluIHF1ZXN0aW9uIGhhcyBiZWVuIHRyYW5zZmVycmVkLgo7OyBJdCBhZGRzIHRoZSB3aXRoZHJhd2FsIGxlYWYgaGFzaCB0byBhIG1hcCBvZiBwcm9jZXNzZWQgbGVhdmVzLiBUaGlzIGVuc3VyZXMgdGhhdAo7OyB0aGlzIHdpdGhkcmF3YWwgbGVhZiBjYW4ndCBiZSB1c2VkIGFnYWluIHRvIHdpdGhkcmF3IGFkZGl0aW9uYWwgZnVuZHMuCjs7IFJldHVybnMgYm9vbAooZGVmaW5lLXByaXZhdGUgKGZpbmlzaC13aXRoZHJhdwogICAgICAgICh3aXRoZHJhdy1pbmZvIHsKICAgICAgICAgICAgd2l0aGRyYXdhbC1sZWFmLWhhc2g6IChidWZmIDMyKSwKICAgICAgICAgICAgd2l0aGRyYXdhbC1yb290LWhhc2g6IChidWZmIDMyKQogICAgICAgIH0pCiAgICApCiAgICAobWFwLWluc2VydCBwcm9jZXNzZWQtd2l0aGRyYXdhbC1sZWF2ZXMtbWFwIHdpdGhkcmF3LWluZm8gdHJ1ZSkKKQo=",
"clarity_version": 2,
"cost": 290960,
"location": {
"path": "./.cache/requirements/ST13F481SBR0R7Z6NMMH8YV2FJJYXA5JPA0AD3HP9.subnet-v1-2.clar"
}
},
{
"transaction_type": "ContractPublish",
"contract_name": "px",
"expected_sender": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM",
"location": {
"path": "contracts/px.clar"
},
"source": "Cjs7IHRpdGxlOiBweAo7OyB2ZXJzaW9uOgo7OyBzdW1tYXJ5Ogo7OyBkZXNjcmlwdGlvbjogQWxsb3dzIHVzZXJzIHRvIHBheSB0byB1cGRhdGUgZGF0YSBpbiBhIG1hdHJpeC4gCjs7ICBFYWNoIG1hdHJpeCB2YWx1ZSBtdXN0IGJlIGEgaGV4YWRlY2ltYWwgdmFsdWUgZnJvbSAweDAwMDAwMCB0byAweGZmZmZmZiwgcmVwcmVzZW50aW5nIGEgY29sb3IgdG8gYmUgZGlzcGxheWVkIG9uIGEgZ3JpZCBpbiBhIHdlYiBwYWdlLiAKOzsgIEVhY2ggbWF0cml4IGtleSBjb3JyZXNwb25kcyB0byB0aGUgbG9jYXRpb24gb2YgdGhlIGdyaWQsIHdoaWNoIGlzIDEwMHgxMDAgY2VsbHMuCgo7OyB0cmFpdHMKOzsKCjs7IHRva2VuIGRlZmluaXRpb25zCjs7IAoKOzsgY29uc3RhbnRzCjs7CihkZWZpbmUtY29uc3RhbnQgTUFYX0xPQyB1MTAwKQooZGVmaW5lLWNvbnN0YW50IE1BWF9WQUwgMHhmZmZmZmYpCihkZWZpbmUtY29uc3RhbnQgTUlOX1ZBTCAweDAwMDAwMCkKKGRlZmluZS1jb25zdGFudCBBTExfTE9DUyAobGlzdCB1MCB1MSB1MiB1MyB1NCB1NSB1NiB1NyB1OCB1OSB1MTAgdTExIHUxMiB1MTMgdTE0IHUxNSB1MTYgdTE3IHUxOCB1MTkgdTIwIHUyMSB1MjIgdTIzIHUyNCB1MjUgdTI2IHUyNyB1MjggdTI5IHUzMCB1MzEgdTMyIHUzMyB1MzQgdTM1IHUzNiB1MzcgdTM4IHUzOSB1NDAgdTQxIHU0MiB1NDMgdTQ0IHU0NSB1NDYgdTQ3IHU0OCB1NDkgdTUwIHU1MSB1NTIgdTUzIHU1NCB1NTUgdTU2IHU1NyB1NTggdTU5IHU2MCB1NjEgdTYyIHU2MyB1NjQgdTY1IHU2NiB1NjcgdTY4IHU2OSB1NzAgdTcxIHU3MiB1NzMgdTc0IHU3NSB1NzYgdTc3IHU3OCB1NzkgdTgwIHU4MSB1ODIgdTgzIHU4NCB1ODUgdTg2IHU4NyB1ODggdTg5IHU5MCB1OTEgdTkyIHU5MyB1OTQgdTk1IHU5NiB1OTcgdTk4IHU5OSkpCjs7IGRhdGEgdmFycwo7OwoKOzsgZGF0YSBtYXBzCjs7CihkZWZpbmUtbWFwIHBpeGVscyB1aW50IChidWZmIDMpKQoKOzsgcHVibGljIGZ1bmN0aW9ucwo7OwooZGVmaW5lLXB1YmxpYyAoc2V0LXZhbHVlLWF0IChsb2MgdWludCkgKHZhbHVlIChidWZmIDMpKSkgCiAgICAoYmVnaW4gCiAgICAgICAgKGlmICg+PSBsb2MgTUFYX0xPQykKICAgICAgICAgICAgKGVyciAiTG9jYXRpb24gb3V0IG9mIGJvdW5kcy4iKQogICAgICAgICAgICAoaWYgKD4gdmFsdWUgTUFYX1ZBTCkKICAgICAgICAgICAgICAgIChlcnIgIlZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIDB4ZmZmZmZmLiIpCiAgICAgICAgICAgICAgICAoaWYgKDwgdmFsdWUgTUlOX1ZBTCkKICAgICAgICAgICAgICAgICAgICAoZXJyICJWYWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAweDAwMDAwMC4iKQogICAgICAgICAgICAgICAgICAgIChvayAobWFwLXNldCBwaXhlbHMgbG9jIHZhbHVlKSkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICkKICAgICkKKQo7OyByZWFkIG9ubHkgZnVuY3Rpb25zCjs7CgooZGVmaW5lLXJlYWQtb25seSAoZ2V0LXZhbHVlLWF0IChsb2MgdWludCkpCiAgICAoaWYgKD49IGxvYyBNQVhfTE9DKQogICAgICAgIChlcnIgIk91dCBvZiBib3VuZHMuIikKICAgICAgICAob2sgKGRlZmF1bHQtdG8gMHhmZmZmZmYgKG1hcC1nZXQ/IHBpeGVscyBsb2MpKSkKICAgICkKKQoKKGRlZmluZS1yZWFkLW9ubHkgKGdldC1hbGwpIAogICAgKG1hcCBnZXQtdmFsdWUtYXQgQUxMX0xPQ1MpCikKCihkZWZpbmUtcmVhZC1vbmx5IChnZW5lc2lzLXRpbWUgKGhlaWdodCB1aW50KSkKICAgIChnZXQtYmxvY2staW5mbz8gdGltZSBoZWlnaHQpCikKOzsgcHJpdmF0ZSBmdW5jdGlvbnMKOzsK",
"clarity_version": 2,
"cost": 18060,
"anchor_block_only": true
}
],
"epoch": "2.1"
},
{
"id": 3,
"transactions": [
{
"transaction_type": "ContractCall",
"contract_id": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.px",
"expected_sender": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM",
"method": "set-value-at",
"parameters": ["u0", "0xfffffa"],
"cost": 2240,
"anchor_block_only": false
},
{
"transaction_type": "StxTransfer",
"expected_sender": "ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB",
"recipient": "ST3AM1A56AK2C1XAFJ4115ZSV26EB49BVQ10MGCS0",
"mstx_amount": 200,
"memo": "0x00000000000000000000000000000000000000000000000000000000000000000000",
"cost": 2240,
"anchor_block_only": true
}
],
"epoch": "2.1"
}
],
"contracts": [
{
"contract_id": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.px",
"path": "/Users/micaiahreid/work/stx-px/contracts/px.clar",
"source": "Cjs7IHRpdGxlOiBweAo7OyB2ZXJzaW9uOgo7OyBzdW1tYXJ5Ogo7OyBkZXNjcmlwdGlvbjogQWxsb3dzIHVzZXJzIHRvIHBheSB0byB1cGRhdGUgZGF0YSBpbiBhIG1hdHJpeC4gCjs7ICBFYWNoIG1hdHJpeCB2YWx1ZSBtdXN0IGJlIGEgaGV4YWRlY2ltYWwgdmFsdWUgZnJvbSAweDAwMDAwMCB0byAweGZmZmZmZiwgcmVwcmVzZW50aW5nIGEgY29sb3IgdG8gYmUgZGlzcGxheWVkIG9uIGEgZ3JpZCBpbiBhIHdlYiBwYWdlLiAKOzsgIEVhY2ggbWF0cml4IGtleSBjb3JyZXNwb25kcyB0byB0aGUgbG9jYXRpb24gb2YgdGhlIGdyaWQsIHdoaWNoIGlzIDEwMHgxMDAgY2VsbHMuCgo7OyB0cmFpdHMKOzsKCjs7IHRva2VuIGRlZmluaXRpb25zCjs7IAoKOzsgY29uc3RhbnRzCjs7CihkZWZpbmUtY29uc3RhbnQgTUFYX0xPQyB1MTAwKQooZGVmaW5lLWNvbnN0YW50IE1BWF9WQUwgMHhmZmZmZmYpCihkZWZpbmUtY29uc3RhbnQgTUlOX1ZBTCAweDAwMDAwMCkKKGRlZmluZS1jb25zdGFudCBBTExfTE9DUyAobGlzdCB1MCB1MSB1MiB1MyB1NCB1NSB1NiB1NyB1OCB1OSB1MTAgdTExIHUxMiB1MTMgdTE0IHUxNSB1MTYgdTE3IHUxOCB1MTkgdTIwIHUyMSB1MjIgdTIzIHUyNCB1MjUgdTI2IHUyNyB1MjggdTI5IHUzMCB1MzEgdTMyIHUzMyB1MzQgdTM1IHUzNiB1MzcgdTM4IHUzOSB1NDAgdTQxIHU0MiB1NDMgdTQ0IHU0NSB1NDYgdTQ3IHU0OCB1NDkgdTUwIHU1MSB1NTIgdTUzIHU1NCB1NTUgdTU2IHU1NyB1NTggdTU5IHU2MCB1NjEgdTYyIHU2MyB1NjQgdTY1IHU2NiB1NjcgdTY4IHU2OSB1NzAgdTcxIHU3MiB1NzMgdTc0IHU3NSB1NzYgdTc3IHU3OCB1NzkgdTgwIHU4MSB1ODIgdTgzIHU4NCB1ODUgdTg2IHU4NyB1ODggdTg5IHU5MCB1OTEgdTkyIHU5MyB1OTQgdTk1IHU5NiB1OTcgdTk4IHU5OSkpCjs7IGRhdGEgdmFycwo7OwoKOzsgZGF0YSBtYXBzCjs7CihkZWZpbmUtbWFwIHBpeGVscyB1aW50IChidWZmIDMpKQoKOzsgcHVibGljIGZ1bmN0aW9ucwo7OwooZGVmaW5lLXB1YmxpYyAoc2V0LXZhbHVlLWF0IChsb2MgdWludCkgKHZhbHVlIChidWZmIDMpKSkgCiAgICAoYmVnaW4gCiAgICAgICAgKGlmICg+PSBsb2MgTUFYX0xPQykKICAgICAgICAgICAgKGVyciAiTG9jYXRpb24gb3V0IG9mIGJvdW5kcy4iKQogICAgICAgICAgICAoaWYgKD4gdmFsdWUgTUFYX1ZBTCkKICAgICAgICAgICAgICAgIChlcnIgIlZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIDB4ZmZmZmZmLiIpCiAgICAgICAgICAgICAgICAoaWYgKDwgdmFsdWUgTUlOX1ZBTCkKICAgICAgICAgICAgICAgICAgICAoZXJyICJWYWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAweDAwMDAwMC4iKQogICAgICAgICAgICAgICAgICAgIChvayAobWFwLXNldCBwaXhlbHMgbG9jIHZhbHVlKSkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICkKICAgICkKKQo7OyByZWFkIG9ubHkgZnVuY3Rpb25zCjs7CgooZGVmaW5lLXJlYWQtb25seSAoZ2V0LXZhbHVlLWF0IChsb2MgdWludCkpCiAgICAoaWYgKD49IGxvYyBNQVhfTE9DKQogICAgICAgIChlcnIgIk91dCBvZiBib3VuZHMuIikKICAgICAgICAob2sgKGRlZmF1bHQtdG8gMHhmZmZmZmYgKG1hcC1nZXQ/IHBpeGVscyBsb2MpKSkKICAgICkKKQoKKGRlZmluZS1yZWFkLW9ubHkgKGdldC1hbGwpIAogICAgKG1hcCBnZXQtdmFsdWUtYXQgQUxMX0xPQ1MpCikKCihkZWZpbmUtcmVhZC1vbmx5IChnZW5lc2lzLXRpbWUgKGhlaWdodCB1aW50KSkKICAgIChnZXQtYmxvY2staW5mbz8gdGltZSBoZWlnaHQpCikKOzsgcHJpdmF0ZSBmdW5jdGlvbnMKOzsK"
}
]
},
"network_manifest": {
"network": {
"name": "devnet",
"stacks_node_rpc_address": null,
"bitcoin_node_rpc_address": null,
"deployment_fee_rate": 10,
"sats_per_bytes": 10
},
"accounts": [
{
"label": "deployer",
"mnemonic": "twice kind fence tip hidden tilt action fragile skin nothing glory cousin green tomorrow spring wrist shed math olympic multiply hip blue scout claw",
"derivation": "m/44'/5757'/0'/0/0",
"balance": 100000000000000,
"stx_address": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM",
"btc_address": "mqVnk6NPRdhntvfm4hh9vvjiRkFDUuSYsH",
"is_mainnet": false
},
{
"label": "faucet",
"mnemonic": "shadow private easily thought say logic fault paddle word top book during ignore notable orange flight clock image wealth health outside kitten belt reform",
"derivation": "m/44'/5757'/0'/0/0",
"balance": 100000000000000,
"stx_address": "STNHKEPYEPJ8ET55ZZ0M5A34J0R3N5FM2CMMMAZ6",
"btc_address": "mjSrB3wS4xab3kYqFktwBzfTdPg367ZJ2d",
"is_mainnet": false
},
{
"label": "wallet_1",
"mnemonic": "crazy vibrant runway diagram beach language above aerobic maze coral this gas mirror output vehicle cover usage ecology unfold room feel file rocket expire",
"derivation": "m/44'/5757'/0'/0/0",
"balance": 100000000000000,
"stx_address": "STB8E0SMACY4A6DCCH4WE48YGX3P877407QW176V",
"btc_address": "mha4u7F3e93P9Xy1WQgVvGtYtynnJtT22x",
"is_mainnet": false
},
{
"label": "wallet_2",
"mnemonic": "hold excess usual excess ring elephant install account glad dry fragile donkey gaze humble truck breeze nation gasp vacuum limb head keep delay hospital",
"derivation": "m/44'/5757'/0'/0/0",
"balance": 100000000000000,
"stx_address": "ST2CY5V39NHDPWSXMW9QDT3HC3GD6Q6XX4CFRK9AG",
"btc_address": "muYdXKmX9bByAueDe6KFfHd5Ff1gdN9ErG",
"is_mainnet": false
},
{
"label": "wallet_3",
"mnemonic": "cycle puppy glare enroll cost improve round trend wrist mushroom scorpion tower claim oppose clever elephant dinosaur eight problem before frozen dune wagon high",
"derivation": "m/44'/5757'/0'/0/0",
"balance": 100000000000000,
"stx_address": "ST2JHG361ZXG51QTKY2NQCVBPPRRE2KZB1HR05NNC",
"btc_address": "mvZtbibDAAA3WLpY7zXXFqRa3T4XSknBX7",
"is_mainnet": false
},
{
"label": "wallet_4",
"mnemonic": "board list obtain sugar hour worth raven scout denial thunder horse logic fury scorpion fold genuine phrase wealth news aim below celery when cabin",
"derivation": "m/44'/5757'/0'/0/0",
"balance": 100000000000000,
"stx_address": "ST2NEB84ASENDXKYGJPQW86YXQCEFEX2ZQPG87ND",
"btc_address": "mg1C76bNTutiCDV3t9nWhZs3Dc8LzUufj8",
"is_mainnet": false
},
{
"label": "wallet_5",
"mnemonic": "hurry aunt blame peanut heavy update captain human rice crime juice adult scale device promote vast project quiz unit note reform update climb purchase",
"derivation": "m/44'/5757'/0'/0/0",
"balance": 100000000000000,
"stx_address": "ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB",
"btc_address": "mweN5WVqadScHdA81aATSdcVr4B6dNokqx",
"is_mainnet": false
},
{
"label": "wallet_6",
"mnemonic": "area desk dutch sign gold cricket dawn toward giggle vibrant indoor bench warfare wagon number tiny universe sand talk dilemma pottery bone trap buddy",
"derivation": "m/44'/5757'/0'/0/0",
"balance": 100000000000000,
"stx_address": "ST3AM1A56AK2C1XAFJ4115ZSV26EB49BVQ10MGCS0",
"btc_address": "mzxXgV6e4BZSsz8zVHm3TmqbECt7mbuErt",
"is_mainnet": false
},
{
"label": "wallet_7",
"mnemonic": "prevent gallery kind limb income control noise together echo rival record wedding sense uncover school version force bleak nuclear include danger skirt enact arrow",
"derivation": "m/44'/5757'/0'/0/0",
"balance": 100000000000000,
"stx_address": "ST3PF13W7Z0RRM42A8VZRVFQ75SV1K26RXEP8YGKJ",
"btc_address": "n37mwmru2oaVosgfuvzBwgV2ysCQRrLko7",
"is_mainnet": false
},
{
"label": "wallet_8",
"mnemonic": "female adjust gallery certain visit token during great side clown fitness like hurt clip knife warm bench start reunion globe detail dream depend fortune",
"derivation": "m/44'/5757'/0'/0/0",
"balance": 100000000000000,
"stx_address": "ST3NBRSFKX28FQ2ZJ1MAKX58HKHSDGNV5N7R21XCP",
"btc_address": "n2v875jbJ4RjBnTjgbfikDfnwsDV5iUByw",
"is_mainnet": false
}
],
"devnet_settings": {
"name": "devnet",
"network_id": null,
"orchestrator_ingestion_port": 20445,
"orchestrator_control_port": 20446,
"bitcoin_node_p2p_port": 18444,
"bitcoin_node_rpc_port": 18443,
"bitcoin_node_username": "devnet",
"bitcoin_node_password": "devnet",
"stacks_node_p2p_port": 20444,
"stacks_node_rpc_port": 20443,
"stacks_node_wait_time_for_microblocks": 50,
"stacks_node_first_attempt_time_ms": 500,
"stacks_node_events_observers": [],
"stacks_node_env_vars": [],
"stacks_api_port": 3999,
"stacks_api_events_port": 3700,
"stacks_api_env_vars": [],
"stacks_explorer_port": 8000,
"stacks_explorer_env_vars": [],
"bitcoin_explorer_port": 8001,
"bitcoin_controller_block_time": 60000,
"bitcoin_controller_automining_disabled": false,
"miner_stx_address": "ST3Q96TFVE6E0Q91XVX6S8RWAJW5R8XTZ8YEBM8RQ",
"miner_secret_key_hex": "3b68e410cc7f9b8bae76f2f2991b69ecd0627c95da22a904065dfb2a73d0585f01",
"miner_btc_address": "n3GRiDLKWuKLCw1DZmV75W1mE35qmW2tQm",
"miner_mnemonic": "fragile loan twenty basic net assault jazz absorb diet talk art shock innocent float punch travel gadget embrace caught blossom hockey surround initial reduce",
"miner_derivation_path": "m/44'/5757'/0'/0/0",
"miner_coinbase_recipient": "ST3Q96TFVE6E0Q91XVX6S8RWAJW5R8XTZ8YEBM8RQ",
"faucet_stx_address": "STNHKEPYEPJ8ET55ZZ0M5A34J0R3N5FM2CMMMAZ6",
"faucet_secret_key_hex": "de433bdfa14ec43aa1098d5be594c8ffb20a31485ff9de2923b2689471c401b801",
"faucet_btc_address": "mjSrB3wS4xab3kYqFktwBzfTdPg367ZJ2d",
"faucet_mnemonic": "shadow private easily thought say logic fault paddle word top book during ignore notable orange flight clock image wealth health outside kitten belt reform",
"faucet_derivation_path": "m/44'/5757'/0'/0/0",
"stacker_mnemonic": "empty lens any direct brother then drop fury rule pole win claim scissors list rescue horn rent inform relief jump sword weekend half legend",
"stacker_derivation_path": "m/44'/5757'/0'/0/0",
"working_dir": "/tmp",
"postgres_port": 5432,
"postgres_username": "postgres",
"postgres_password": "postgres",
"stacks_api_postgres_database": "stacks_api",
"subnet_api_postgres_database": "subnet_api",
"pox_stacking_orders": [
{
"start_at_cycle": 3,
"duration": 12,
"wallet": "wallet_1",
"slots": 2,
"btc_address": "mr1iPkD9N3RJZZxXRk7xF9d36gffa6exNC"
},
{
"start_at_cycle": 3,
"duration": 12,
"wallet": "wallet_2",
"slots": 1,
"btc_address": "muYdXKmX9bByAueDe6KFfHd5Ff1gdN9ErG"
},
{
"start_at_cycle": 3,
"duration": 12,
"wallet": "wallet_3",
"slots": 1,
"btc_address": "mvZtbibDAAA3WLpY7zXXFqRa3T4XSknBX7"
}
],
"execute_script": [],
"bitcoin_node_image_url": "quay.io/hirosystems/bitcoind:devnet-v3",
"stacks_node_image_url": "quay.io/hirosystems/stacks-node:devnet-3.0",
"stacks_signer_image_url": "quay.io/hirosystems/stacks-signer:devnet-3.0",
"stacks_api_image_url": "hirosystems/stacks-blockchain-api:latest",
"stacks_explorer_image_url": "hirosystems/explorer:latest",
"postgres_image_url": "postgres:14",
"bitcoin_explorer_image_url": "quay.io/hirosystems/bitcoin-explorer:devnet",
"disable_bitcoin_explorer": true,
"disable_stacks_explorer": true,
"disable_stacks_api": false,
"bind_containers_volumes": true,
"enable_subnet_node": false,
"subnet_node_image_url": "hirosystems/stacks-subnets:0.8.1",
"subnet_leader_stx_address": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM",
"subnet_leader_secret_key_hex": "753b7cc01a1a2e86221266a154af739463fce51219d97e4f856cd7200c3bd2a601",
"subnet_leader_btc_address": "mqVnk6NPRdhntvfm4hh9vvjiRkFDUuSYsH",
"subnet_leader_mnemonic": "twice kind fence tip hidden tilt action fragile skin nothing glory cousin green tomorrow spring wrist shed math olympic multiply hip blue scout claw",
"subnet_leader_derivation_path": "m/44'/5757'/0'/0/0",
"subnet_node_p2p_port": 30444,
"subnet_node_rpc_port": 30443,
"subnet_events_ingestion_port": 30445,
"subnet_node_events_observers": [],
"subnet_contract_id": "ST173JK7NZBA4BS05ZRATQH1K89YJMTGEH1Z5J52E.subnet-v3-0-1",
"remapped_subnet_contract_id": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.subnet-v3-0-1",
"subnet_node_env_vars": [],
"subnet_api_image_url": "hirosystems/stacks-blockchain-api:latest",
"subnet_api_port": 13999,
"subnet_api_events_port": 13700,
"subnet_api_env_vars": [],
"disable_subnet_api": true,
"docker_host": "unix:///var/run/docker.sock",
"components_host": "127.0.0.1",
"epoch_2_0": 100,
"epoch_2_05": 100,
"epoch_2_1": 101,
"epoch_2_2": 103,
"epoch_2_3": 104,
"epoch_2_4": 105,
"pox_2_activation": 102,
"use_docker_gateway_routing": false,
"docker_platform": "linux/amd64"
}
},
"project_manifest": {
"project": {
"name": "px",
"description": "my description",
"authors": ["test1", "test2"],
"telemetry": false,
"cache_dir": ".cache",
"requirements": []
},
"contracts": {
"my-contract": {
"path": "contracts/my-contract.clar",
"clarity_version": 2,
"epoch": 2.4
},
"px": {
"path": "contracts/px.clar",
"clarity_version": 2,
"epoch": 2.1
}
},
"repl": {
"analysis": {
"passes": [],
"check_checker": {
"strict": false,
"trusted_sender": false,
"trusted_caller": false,
"callee_filter": false
}
}
}
}
}