@opcat-labs/cat-sdk 1.0.2 → 1.0.3

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.
Files changed (92) hide show
  1. package/artifacts/.templates/cat20/cat20Guard.scrypt.map +1 -1
  2. package/artifacts/.templates/cat20/cat20Guard.scrypt.tpl +6 -6
  3. package/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.map +1 -1
  4. package/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.tpl +3 -3
  5. package/artifacts/.templates/cat20/types.scrypt.map +1 -1
  6. package/artifacts/.templates/cat20/types.scrypt.tpl +1 -1
  7. package/artifacts/cat20/cat20.json +18 -18
  8. package/artifacts/cat20/cat20.scrypt +9 -9
  9. package/artifacts/cat20/cat20Guard.json +25 -25
  10. package/artifacts/cat20/cat20Guard.scrypt +19 -19
  11. package/artifacts/cat20/cat20GuardStateLib.json +11 -11
  12. package/artifacts/cat20/cat20GuardStateLib.scrypt +8 -8
  13. package/artifacts/cat20/cat20StateLib.json +13 -13
  14. package/artifacts/cat20/cat20StateLib.scrypt +6 -6
  15. package/artifacts/cat20/minters/cat20ClosedMinter.json +15 -15
  16. package/artifacts/cat20/minters/cat20ClosedMinter.scrypt +11 -11
  17. package/artifacts/cat20/minters/cat20ClosedMinterMetadata.json +11 -11
  18. package/artifacts/cat20/minters/cat20ClosedMinterMetadata.scrypt +3 -3
  19. package/artifacts/cat20/minters/cat20OpenMinter.json +18 -18
  20. package/artifacts/cat20/minters/cat20OpenMinter.scrypt +10 -10
  21. package/artifacts/cat20/minters/cat20OpenMinterMetadata.json +11 -11
  22. package/artifacts/cat20/minters/cat20OpenMinterMetadata.scrypt +3 -3
  23. package/artifacts/cat20/types.json +7 -7
  24. package/artifacts/cat20/types.scrypt +7 -7
  25. package/artifacts/cat20Incinerator.json +13 -13
  26. package/artifacts/cat20Incinerator.scrypt +3 -3
  27. package/artifacts/constants.json +2 -2
  28. package/artifacts/constants.scrypt +1 -1
  29. package/artifacts/counter.json +4 -4
  30. package/artifacts/counter.scrypt +8 -8
  31. package/artifacts/p2pkh.json +1 -1
  32. package/artifacts/p2pkh.scrypt +1 -1
  33. package/artifacts/types.json +1 -1
  34. package/artifacts/types.scrypt +1 -1
  35. package/artifacts/utils/ownerUtils.json +2 -2
  36. package/artifacts/utils/ownerUtils.scrypt +3 -3
  37. package/artifacts/utils/safeMath.json +2 -2
  38. package/artifacts/utils/safeMath.scrypt +1 -1
  39. package/dist/artifacts/.templates/cat20/cat20Guard.scrypt.map +1 -1
  40. package/dist/artifacts/.templates/cat20/cat20Guard.scrypt.tpl +6 -6
  41. package/dist/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.map +1 -1
  42. package/dist/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.tpl +3 -3
  43. package/dist/artifacts/.templates/cat20/types.scrypt.map +1 -1
  44. package/dist/artifacts/.templates/cat20/types.scrypt.tpl +1 -1
  45. package/dist/artifacts/cat20/cat20.json +18 -18
  46. package/dist/artifacts/cat20/cat20.scrypt +9 -9
  47. package/dist/artifacts/cat20/cat20Guard.json +25 -25
  48. package/dist/artifacts/cat20/cat20Guard.scrypt +19 -19
  49. package/dist/artifacts/cat20/cat20GuardStateLib.json +11 -11
  50. package/dist/artifacts/cat20/cat20GuardStateLib.scrypt +8 -8
  51. package/dist/artifacts/cat20/cat20StateLib.json +13 -13
  52. package/dist/artifacts/cat20/cat20StateLib.scrypt +6 -6
  53. package/dist/artifacts/cat20/minters/cat20ClosedMinter.json +15 -15
  54. package/dist/artifacts/cat20/minters/cat20ClosedMinter.scrypt +11 -11
  55. package/dist/artifacts/cat20/minters/cat20ClosedMinterMetadata.json +11 -11
  56. package/dist/artifacts/cat20/minters/cat20ClosedMinterMetadata.scrypt +3 -3
  57. package/dist/artifacts/cat20/minters/cat20OpenMinter.json +18 -18
  58. package/dist/artifacts/cat20/minters/cat20OpenMinter.scrypt +10 -10
  59. package/dist/artifacts/cat20/minters/cat20OpenMinterMetadata.json +11 -11
  60. package/dist/artifacts/cat20/minters/cat20OpenMinterMetadata.scrypt +3 -3
  61. package/dist/artifacts/cat20/types.json +7 -7
  62. package/dist/artifacts/cat20/types.scrypt +7 -7
  63. package/dist/artifacts/cat20Incinerator.json +13 -13
  64. package/dist/artifacts/cat20Incinerator.scrypt +3 -3
  65. package/dist/artifacts/constants.json +2 -2
  66. package/dist/artifacts/constants.scrypt +1 -1
  67. package/dist/artifacts/counter.json +4 -4
  68. package/dist/artifacts/counter.scrypt +8 -8
  69. package/dist/artifacts/p2pkh.json +1 -1
  70. package/dist/artifacts/p2pkh.scrypt +1 -1
  71. package/dist/artifacts/types.json +1 -1
  72. package/dist/artifacts/types.scrypt +1 -1
  73. package/dist/artifacts/utils/ownerUtils.json +2 -2
  74. package/dist/artifacts/utils/ownerUtils.scrypt +3 -3
  75. package/dist/artifacts/utils/safeMath.json +2 -2
  76. package/dist/artifacts/utils/safeMath.scrypt +1 -1
  77. package/dist/cjs/contracts/constants.js +2 -2
  78. package/dist/cjs/contracts/constants.js.map +1 -1
  79. package/dist/cjs/features/cat20/send/singleSend.js +8 -8
  80. package/dist/cjs/features/cat20/send/singleSend.js.map +1 -1
  81. package/dist/esm/contracts/constants.js +2 -2
  82. package/dist/esm/contracts/constants.js.map +1 -1
  83. package/dist/esm/features/cat20/send/singleSend.js +8 -8
  84. package/dist/esm/features/cat20/send/singleSend.js.map +1 -1
  85. package/dist/types/contracts/constants.d.ts +2 -2
  86. package/dist/types/contracts/constants.d.ts.map +1 -1
  87. package/dist/types/features/cat20/send/singleSend.d.ts +2 -2
  88. package/dist/types/features/cat20/send/singleSend.d.ts.map +1 -1
  89. package/dist/types/utils/index.d.ts +1 -1
  90. package/dist/types/utils/index.d.ts.map +1 -1
  91. package/package.json +76 -76
  92. package/scrypt.index.json +3 -3
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "version": 10,
3
3
  "compilerVersion": "1.21.0+commit.2ada378",
4
- "contract": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20Guard",
5
- "md5": "d598957c302a19274aa20d09b4dacf18",
4
+ "contract": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20Guard",
5
+ "md5": "1900498bf7fedee535662fdc702c431a",
6
6
  "structs": [
7
7
  {
8
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState",
8
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState",
9
9
  "params": [
10
10
  {
11
11
  "name": "tokenScriptHashes",
@@ -21,13 +21,13 @@
21
21
  },
22
22
  {
23
23
  "name": "tokenScriptIndexes",
24
- "type": "int[6]"
24
+ "type": "int[10]"
25
25
  }
26
26
  ],
27
27
  "genericTypes": []
28
28
  },
29
29
  {
30
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20State",
30
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20State",
31
31
  "params": [
32
32
  {
33
33
  "name": "tag",
@@ -45,7 +45,7 @@
45
45
  "genericTypes": []
46
46
  },
47
47
  {
48
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20ClosedMinterState",
48
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20ClosedMinterState",
49
49
  "params": [
50
50
  {
51
51
  "name": "tag",
@@ -59,7 +59,7 @@
59
59
  "genericTypes": []
60
60
  },
61
61
  {
62
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__ClosedMinterCAT20Meta",
62
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__ClosedMinterCAT20Meta",
63
63
  "params": [
64
64
  {
65
65
  "name": "tag",
@@ -85,7 +85,7 @@
85
85
  "genericTypes": []
86
86
  },
87
87
  {
88
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__OpenMinterCAT20Meta",
88
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__OpenMinterCAT20Meta",
89
89
  "params": [
90
90
  {
91
91
  "name": "tag",
@@ -127,7 +127,7 @@
127
127
  "genericTypes": []
128
128
  },
129
129
  {
130
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20OpenMinterState",
130
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20OpenMinterState",
131
131
  "params": [
132
132
  {
133
133
  "name": "tag",
@@ -321,7 +321,7 @@
321
321
  ],
322
322
  "library": [
323
323
  {
324
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__OwnerUtils",
324
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__OwnerUtils",
325
325
  "params": [],
326
326
  "properties": [],
327
327
  "genericTypes": []
@@ -339,20 +339,20 @@
339
339
  "genericTypes": []
340
340
  },
341
341
  {
342
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__SafeMath",
342
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__SafeMath",
343
343
  "params": [],
344
344
  "properties": [],
345
345
  "genericTypes": []
346
346
  },
347
347
  {
348
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardStateLib",
348
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardStateLib",
349
349
  "params": [],
350
350
  "properties": [],
351
351
  "genericTypes": [],
352
- "stateType": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState"
352
+ "stateType": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState"
353
353
  },
354
354
  {
355
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__ConstantsLib",
355
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__ConstantsLib",
356
356
  "params": [],
357
357
  "properties": [],
358
358
  "genericTypes": []
@@ -364,11 +364,11 @@
364
364
  "genericTypes": []
365
365
  },
366
366
  {
367
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20StateLib",
367
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20StateLib",
368
368
  "params": [],
369
369
  "properties": [],
370
370
  "genericTypes": [],
371
- "stateType": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20State"
371
+ "stateType": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20State"
372
372
  },
373
373
  {
374
374
  "name": "_opcat_labs_scrypt_ts_opcat_1_0_4__rs__StdUtils",
@@ -386,27 +386,27 @@
386
386
  "params": [
387
387
  {
388
388
  "name": "nextStateHashes",
389
- "type": "bytes[6]"
389
+ "type": "bytes[10]"
390
390
  },
391
391
  {
392
392
  "name": "ownerAddrOrScriptHashes",
393
- "type": "bytes[6]"
393
+ "type": "bytes[10]"
394
394
  },
395
395
  {
396
396
  "name": "outputTokens",
397
- "type": "int[6]"
397
+ "type": "int[10]"
398
398
  },
399
399
  {
400
400
  "name": "tokenScriptHashIndexes",
401
- "type": "int[6]"
401
+ "type": "int[10]"
402
402
  },
403
403
  {
404
404
  "name": "outputSatoshis",
405
- "type": "int[6]"
405
+ "type": "int[10]"
406
406
  },
407
407
  {
408
408
  "name": "cat20States",
409
- "type": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20State[6]"
409
+ "type": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20State[10]"
410
410
  },
411
411
  {
412
412
  "name": "outputCount",
@@ -418,7 +418,7 @@
418
418
  },
419
419
  {
420
420
  "name": "__scrypt_ts_curState",
421
- "type": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState"
421
+ "type": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState"
422
422
  },
423
423
  {
424
424
  "name": "__scrypt_ts_spentAmounts",
@@ -440,8 +440,8 @@
440
440
  }
441
441
  ],
442
442
  "stateProps": [],
443
- "stateType": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState",
443
+ "stateType": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState",
444
444
  "buildType": "release",
445
445
  "file": "..\\cat20Guard.scrypt",
446
- "hex": "512097dfd76851bf465e8f715593b217714858bbe9570ff3bd5e33840a34e20ff0262102ba79df5f8ae7604a9830f03c7933028186aede0675a16f025dc4f8be8eec0382201008ce7480da41702918d1ec8e6849ba32b4d65b1e40dc669c31a1e6306b266c2000000000000000000000000000000000000000000000000000000000000000ff2000000000000000000000000000000000000000000000000000000000000000fe2000000000000000000000000000000000000000000000000000000000000000fd2000000000000000000000000000000000000000000000000000000000000000fc076f706361740102012b79012b79012b79012b79012b79012b79012b79012b79012b79012b79012b79012b79012b79012b795d798277549d5c79827701209d5b79827701209d5a79827701209d597900a26958798277549d5779827701209d5679827701209d5579827701209d5479827701209d5379827701209d527900a2697800a26976519c6476529c6751686476539c67516864760281009c67516864760282009c67516864760283009c675168695d795d797e5c797e5b797e5a79767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c7e59797e58797e57797e56797e55797e54797e5379546e8b806e7c7f75007f6b6d6d6c7e5279546e8b806e7c7f75007f6b6d6d6c7e7854807e6b6d6d6d6d6d6d6d6c5979785a795a79210ac407f0e4bd44bfc207355a778b046225a7068fc59ee7eda43ad905aadbffc800206c266b30e6a1319c66dc401e5bd6b432ba49688eecd118297041da8074ce08105c7956795679aa7676517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e01007e817757795679567956795679537956795479577995939521414136d08c5ed2bf3ba048afe6dcaebafeffffffffffffffffffffffffffffff006e6e9776009f636e936776687777777b757c6e5296a0636e7c947b757c6853798277527982775379012080517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e01205279947f77545379935279930130787e527e54797e58797e527e53797e52797e57797e6b6d6d6d6d6d6d6c765779ac6b6d6d6d6d6d6c77695b7901267978aa7888785878827d77527997009d6e7c966b6d6d6c775a790126796f75aa527988765379012078827d77527997009d6e7c967777779d6d755b790125796f75aa527988765379012078827d77527997009d6e7c967777779d6d75011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e7901337901317901317901317901317901317901317901317901317901317901317901317901317901317901317901317901317901317901317901117901117901117901117953766b796c756b6d6d6c8277528001127901127901127901127953766b796c756b6d6d6c7e01127901127901127901127952766b796c756b6d6d6c827752807e01127901127901127901127952766b796c756b6d6d6c7e01127901127901127901127951766b796c756b6d6d6c827752807e01127901127901127901127951766b796c756b6d6d6c7e01127901127901127901127900766b796c756b6d6d6c827752807e01127901127901127901127900766b796c756b6d6d6c7e5e795e795e795e7953766b796c756b6d6d6c827752807e5e795e795e795e7953766b796c756b6d6d6c7e5e795e795e795e7952766b796c756b6d6d6c827752807e5e795e795e795e7952766b796c756b6d6d6c7e5e795e795e795e7951766b796c756b6d6d6c827752807e5e795e795e795e7951766b796c756b6d6d6c7e5e795e795e795e7900766b796c756b6d6d6c827752807e5e795e795e795e7900766b796c756b6d6d6c7e5a795a795a795a7953766b796c756b6d6d6c827752807e5a795a795a795a7953766b796c756b6d6d6c7e5a795a795a795a7952766b796c756b6d6d6c827752807e5a795a795a795a7952766b796c756b6d6d6c7e5a795a795a795a7951766b796c756b6d6d6c827752807e5a795a795a795a7951766b796c756b6d6d6c7e5a795a795a795a7900766b796c756b6d6d6c827752807e5a795a795a795a7900766b796c756b6d6d6c7e56795679567956795679567955766b796c756b6d6d6d6c827752807e56795679567956795679567955766b796c756b6d6d6d6c7e56795679567956795679567954766b796c756b6d6d6d6c827752807e56795679567956795679567954766b796c756b6d6d6d6c7e56795679567956795679567953766b796c756b6d6d6d6c827752807e56795679567956795679567953766b796c756b6d6d6d6c7e56795679567956795679567952766b796c756b6d6d6d6c827752807e56795679567956795679567952766b796c756b6d6d6d6c7e56795679567956795679567951766b796c756b6d6d6d6c827752807e56795679567956795679567951766b796c756b6d6d6d6c7e56795679567956795679567900766b796c756b6d6d6d6c827752807e56795679567956795679567900766b796c756b6d6d6d6c7e01127901127901127901127953766b796c756b6d6d6ca901137901137901137901137952766b796c756b6d6d6ca97e01137901137901137901137951766b796c756b6d6d6ca97e01137901137901137901137900766b796c756b6d6d6ca97e5f795f795f795f7953766b796c756b6d6d6ca97e5f795f795f795f7952766b796c756b6d6d6ca97e5f795f795f795f7951766b796c756b6d6d6ca97e5f795f795f795f7900766b796c756b6d6d6ca97e5b795b795b795b7953766b796c756b6d6d6ca97e5b795b795b795b7952766b796c756b6d6d6ca97e5b795b795b795b7951766b796c756b6d6d6ca97e5b795b795b795b7900766b796c756b6d6d6ca97e57795779577957795779577955766b796c756b6d6d6d6ca97e57795779577957795779577954766b796c756b6d6d6d6ca97e57795779577957795779577953766b796c756b6d6d6d6ca97e57795779577957795779577952766b796c756b6d6d6d6ca97e57795779577957795779577951766b796c756b6d6d6d6ca97e57795779577957795779577900766b796c756b6d6d6d6ca97ea97ea86b6d6d6d6d6d6d6d6d6d6c011f797653798b0120957f7553790120957f775279886d7501117901117901117901117901117901117901117901117901117901117901117901117901117901117901117901117901117901117901117901117901117901117953766b796c7553766b796c7587916953766b796c7552766b796c7587916953766b796c7551766b796c7587916952766b796c7552766b796c7587916952766b796c7551766b796c7587916951766b796c7551766b796c758791696d6d01117901117901117901117953766b796c756b6d6d6c827d7701209d5e795e795e795e7953766b796c756b6d6d6c00a2695a795a795a795a7953766b796c756b6d6d6c00a2697501117901117901117901117952766b796c756b6d6d6c827d7701209d5e795e795e795e7952766b796c756b6d6d6c00a2695a795a795a795a7952766b796c756b6d6d6c00a2697501117901117901117901117951766b796c756b6d6d6c827d7701209d5e795e795e795e7951766b796c756b6d6d6c00a2695a795a795a795a7951766b796c756b6d6d6c00a2697501117901117901117901117900766b796c756b6d6d6c827d7701209d5e795e795e795e7900766b796c756b6d6d6c00a2695a795a795a795a7900766b796c756b6d6d6c00a2697555795579557955795579557955766b796c756b6d6d6d6c764fa26376549f670068697555795579557955795579557954766b796c756b6d6d6d6c764fa26376549f670068697555795579557955795579557953766b796c756b6d6d6d6c764fa26376549f670068697555795579557955795579557952766b796c756b6d6d6d6c764fa26376549f670068697555795579557955795579557951766b796c756b6d6d6d6c764fa26376549f670068697555795579557955795579557900766b796c756b6d6d6d6c764fa26376549f67006869756d6d6d6d6d6d6d6d6d0001187901187901187901187901167901167901167901167953766b796c756b6d6d6c54766b796c7587645479768b567a757171557a756801167901167901167901167952766b796c756b6d6d6c53766b796c7587645479768b567a757171557a756801167901167901167901167951766b796c756b6d6d6c52766b796c7587645479768b567a757171557a756801167901167901167901167900766b796c756b6d6d6c51766b796c7587645479768b567a757171557a75680055799f6301167901167901167901167953766b796c756b6d6d6c54766b796c7587916901167901167901167901167953766b796c756b6d6d6c827701209d6701167901167901167901167953766b796c756b6d6d6c54766b796c7588685155799f6301167901167901167901167952766b796c756b6d6d6c53766b796c7587916901167901167901167901167952766b796c756b6d6d6c827701209d6701167901167901167901167952766b796c756b6d6d6c53766b796c7588685255799f6301167901167901167901167951766b796c756b6d6d6c52766b796c7587916901167901167901167901167951766b796c756b6d6d6c827701209d6701167901167901167901167951766b796c756b6d6d6c52766b796c7588685355799f6301167901167901167901167900766b796c756b6d6d6c51766b796c7587916901167901167901167901167900766b796c756b6d6d6c827701209d6701167901167901167901167900766b796c756b6d6d6c51766b796c758868547900a069000000004f011c7960796079607960796079607955766b796c756b6d6d6d6c0052799f63765c799f69764f9e63011d79011d79011d79011d795455797600a26976549f69948c766b796c756b6d6d6c76012a79006e8b0120957f75780120957f77777788015e766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012479886d75012a79006e8b0120957f75780120957f777777015f766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c75015f766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701117901117901117901117901117901117955766b796c756b6d6d6d6c4f9d687560796079607960796079607954766b796c756b6d6d6d6c5152799f63765c799f69764f9e63011d79011d79011d79011d795455797600a26976549f69948c766b796c756b6d6d6c76012a79516e8b0120957f75780120957f77777788015b766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012479886d75012a79516e8b0120957f75780120957f777777015c766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c75015c766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701117901117901117901117901117901117954766b796c756b6d6d6d6c4f9d687560796079607960796079607953766b796c756b6d6d6d6c5252799f63765c799f69764f9e63011d79011d79011d79011d795455797600a26976549f69948c766b796c756b6d6d6c76012a79526e8b0120957f75780120957f777777880158766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012479886d75012a79526e8b0120957f75780120957f7777770159766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c750159766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701117901117901117901117901117901117953766b796c756b6d6d6d6c4f9d687560796079607960796079607952766b796c756b6d6d6d6c5352799f63765c799f69764f9e63011d79011d79011d79011d795455797600a26976549f69948c766b796c756b6d6d6c76012a79536e8b0120957f75780120957f777777880155766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012479886d75012a79536e8b0120957f75780120957f7777770156766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c750156766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701117901117901117901117901117901117952766b796c756b6d6d6d6c4f9d687560796079607960796079607951766b796c756b6d6d6d6c5452799f63765c799f69764f9e63011d79011d79011d79011d795455797600a26976549f69948c766b796c756b6d6d6c76012a79546e8b0120957f75780120957f777777880152766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012479886d75012a79546e8b0120957f75780120957f7777770153766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c750153766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701117901117901117901117901117901117951766b796c756b6d6d6d6c4f9d687560796079607960796079607900766b796c756b6d6d6d6c5552799f63765c799f69764f9e63011d79011d79011d79011d795455797600a26976549f69948c766b796c756b6d6d6c76012a79556e8b0120957f75780120957f77777788014f766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012479886d75012a79556e8b0120957f75780120957f7777770150766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c750150766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701117901117901117901117901117901117900766b796c756b6d6d6d6c4f9d68757800a263785b798c9c67006869014a7900a263014a7956a1670068690000000000000150799f630179766b796c7877827700a069016e766b796c78770112799f69764f9e630175766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a7501267953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777028300766b796c7578880125790125790125790125795457797600a26976549f69948c766b796c756b6d6d6c557978016e766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670175766b796c75009d7801247901247901247901247953766b796c756b6d6d6c8791697801247901247901247901247952766b796c756b6d6d6c8791697801247901247901247901247951766b796c756b6d6d6c8791697801247901247901247901247900766b796c756b6d6d6c8791696f75016b766b796c75028400766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d670179766b796c758277009d016d766b796c754f9d0173766b796c75009d017f766b796c7500880167766b796c75009d68510150799f630178766b796c7877827700a069016d766b796c78770112799f69764f9e630174766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a7501267953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777028200766b796c7578880125790125790125790125795457797600a26976549f69948c766b796c756b6d6d6c557978016d766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670174766b796c75009d7801247901247901247901247953766b796c756b6d6d6c8791697801247901247901247901247952766b796c756b6d6d6c8791697801247901247901247901247951766b796c756b6d6d6c8791697801247901247901247901247900766b796c756b6d6d6c8791696f75016a766b796c75028300766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d670178766b796c758277009d016c766b796c754f9d0172766b796c75009d017e766b796c7500880166766b796c75009d68520150799f630177766b796c7877827700a069016c766b796c78770112799f69764f9e630173766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a7501267953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777028100766b796c7578880125790125790125790125795457797600a26976549f69948c766b796c756b6d6d6c557978016c766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670173766b796c75009d7801247901247901247901247953766b796c756b6d6d6c8791697801247901247901247901247952766b796c756b6d6d6c8791697801247901247901247901247951766b796c756b6d6d6c8791697801247901247901247901247900766b796c756b6d6d6c8791696f750169766b796c75028200766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d670177766b796c758277009d016b766b796c754f9d0171766b796c75009d017d766b796c7500880165766b796c75009d68530150799f630176766b796c7877827700a069016b766b796c78770112799f69764f9e630172766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a7501267953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777028000766b796c7578880125790125790125790125795457797600a26976549f69948c766b796c756b6d6d6c557978016b766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670172766b796c75009d7801247901247901247901247953766b796c756b6d6d6c8791697801247901247901247901247952766b796c756b6d6d6c8791697801247901247901247901247951766b796c756b6d6d6c8791697801247901247901247901247900766b796c756b6d6d6c8791696f750168766b796c75028100766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d670176766b796c758277009d016a766b796c754f9d0170766b796c75009d017c766b796c7500880164766b796c75009d68540150799f630175766b796c7877827700a069016a766b796c78770112799f69764f9e630171766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a7501267953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777017f766b796c7578880125790125790125790125795457797600a26976549f69948c766b796c756b6d6d6c557978016a766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670171766b796c75009d7801247901247901247901247953766b796c756b6d6d6c8791697801247901247901247901247952766b796c756b6d6d6c8791697801247901247901247901247951766b796c756b6d6d6c8791697801247901247901247901247900766b796c756b6d6d6c8791696f750167766b796c75028000766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d670175766b796c758277009d0169766b796c754f9d016f766b796c75009d017b766b796c7500880163766b796c75009d68550150799f630174766b796c7877827700a0690169766b796c78770112799f69764f9e630170766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a7501267953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777017e766b796c7578880125790125790125790125795457797600a26976549f69948c766b796c756b6d6d6c5579780169766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670170766b796c75009d7801247901247901247901247953766b796c756b6d6d6c8791697801247901247901247901247952766b796c756b6d6d6c8791697801247901247901247901247951766b796c756b6d6d6c8791697801247901247901247901247900766b796c756b6d6d6c8791696f750166766b796c75017f766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d670174766b796c758277009d0168766b796c754f9d016e766b796c75009d017a766b796c7500880162766b796c75009d685a766b796c75011e79011e79011e79011e7953766b796c756b6d6d6c9d5a766b796c7555766b796c75011b79011b79011b79011b7953766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d0060799f635a766b796c7500a069675a766b796c75009d54766b796c75009d011d79011d79011d79011d7953766b796c756b6d6d6c009d01197901197901197901197953766b796c756b6d6d6c009d6859766b796c75011e79011e79011e79011e7952766b796c756b6d6d6c9d59766b796c7554766b796c75011b79011b79011b79011b7952766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d5160799f6359766b796c7500a0696759766b796c75009d53766b796c75009d011d79011d79011d79011d7952766b796c756b6d6d6c009d01197901197901197901197952766b796c756b6d6d6c009d6858766b796c75011e79011e79011e79011e7951766b796c756b6d6d6c9d58766b796c7553766b796c75011b79011b79011b79011b7951766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d5260799f6358766b796c7500a0696758766b796c75009d52766b796c75009d011d79011d79011d79011d7951766b796c756b6d6d6c009d01197901197901197901197951766b796c756b6d6d6c009d6857766b796c75011e79011e79011e79011e7900766b796c756b6d6d6c9d57766b796c7552766b796c75011b79011b79011b79011b7900766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d5360799f6357766b796c7500a0696757766b796c75009d51766b796c75009d011d79011d79011d79011d7900766b796c756b6d6d6c009d01197901197901197901197900766b796c756b6d6d6c009d6876aa014579876b6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c"
446
+ "hex": "512097dfd76851bf465e8f715593b217714858bbe9570ff3bd5e33840a34e20ff0262102ba79df5f8ae7604a9830f03c7933028186aede0675a16f025dc4f8be8eec0382201008ce7480da41702918d1ec8e6849ba32b4d65b1e40dc669c31a1e6306b266c2000000000000000000000000000000000000000000000000000000000000000ff2000000000000000000000000000000000000000000000000000000000000000fe2000000000000000000000000000000000000000000000000000000000000000fd2000000000000000000000000000000000000000000000000000000000000000fc076f706361740102012f79012f79012f79012f79012f79012f79012f79012f79012f79012f79012f79012f79012f79012f795d798277549d5c79827701209d5b79827701209d5a79827701209d597900a26958798277549d5779827701209d5679827701209d5579827701209d5479827701209d5379827701209d527900a2697800a26976519c6476529c6751686476539c67516864760281009c67516864760282009c67516864760283009c675168695d795d797e5c797e5b797e5a79767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c7e59797e58797e57797e56797e55797e54797e5379546e8b806e7c7f75007f6b6d6d6c7e5279546e8b806e7c7f75007f6b6d6d6c7e7854807e6b6d6d6d6d6d6d6d6c5979785a795a79210ac407f0e4bd44bfc207355a778b046225a7068fc59ee7eda43ad905aadbffc800206c266b30e6a1319c66dc401e5bd6b432ba49688eecd118297041da8074ce08105c7956795679aa7676517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e01007e817757795679567956795679537956795479577995939521414136d08c5ed2bf3ba048afe6dcaebafeffffffffffffffffffffffffffffff006e6e9776009f636e936776687777777b757c6e5296a0636e7c947b757c6853798277527982775379012080517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e01205279947f77545379935279930130787e527e54797e58797e527e53797e52797e57797e6b6d6d6d6d6d6d6c765779ac6b6d6d6d6d6d6c77695b79012a7978aa7888785878827d77527997009d6e7c966b6d6d6c775a79012a796f75aa527988765379012078827d77527997009d6e7c967777779d6d755b790129796f75aa527988765379012078827d77527997009d6e7c967777779d6d75012279012279012279012279012279012279012279012279012279012279012279012279012279012279012279012279012279012279012279012279012279012279013b7901397901397901397901397901397901397901397901397901397901397901397901397901397901397901397901397901397901397901397901397901397901397901157901157901157901157953766b796c756b6d6d6c8277528001167901167901167901167953766b796c756b6d6d6c7e01167901167901167901167952766b796c756b6d6d6c827752807e01167901167901167901167952766b796c756b6d6d6c7e01167901167901167901167951766b796c756b6d6d6c827752807e01167901167901167901167951766b796c756b6d6d6c7e01167901167901167901167900766b796c756b6d6d6c827752807e01167901167901167901167900766b796c756b6d6d6c7e01127901127901127901127953766b796c756b6d6d6c827752807e01127901127901127901127953766b796c756b6d6d6c7e01127901127901127901127952766b796c756b6d6d6c827752807e01127901127901127901127952766b796c756b6d6d6c7e01127901127901127901127951766b796c756b6d6d6c827752807e01127901127901127901127951766b796c756b6d6d6c7e01127901127901127901127900766b796c756b6d6d6c827752807e01127901127901127901127900766b796c756b6d6d6c7e5e795e795e795e7953766b796c756b6d6d6c827752807e5e795e795e795e7953766b796c756b6d6d6c7e5e795e795e795e7952766b796c756b6d6d6c827752807e5e795e795e795e7952766b796c756b6d6d6c7e5e795e795e795e7951766b796c756b6d6d6c827752807e5e795e795e795e7951766b796c756b6d6d6c7e5e795e795e795e7900766b796c756b6d6d6c827752807e5e795e795e795e7900766b796c756b6d6d6c7e5a795a795a795a795a795a795a795a795a795a7959766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7959766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7958766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7958766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7957766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7957766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7956766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7956766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7955766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7955766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7954766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7954766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7953766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7953766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7952766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7952766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7951766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7951766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7900766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7900766b796c756b6d6d6d6d6d6c7e01167901167901167901167953766b796c756b6d6d6ca901177901177901177901177952766b796c756b6d6d6ca97e01177901177901177901177951766b796c756b6d6d6ca97e01177901177901177901177900766b796c756b6d6d6ca97e01137901137901137901137953766b796c756b6d6d6ca97e01137901137901137901137952766b796c756b6d6d6ca97e01137901137901137901137951766b796c756b6d6d6ca97e01137901137901137901137900766b796c756b6d6d6ca97e5f795f795f795f7953766b796c756b6d6d6ca97e5f795f795f795f7952766b796c756b6d6d6ca97e5f795f795f795f7951766b796c756b6d6d6ca97e5f795f795f795f7900766b796c756b6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7959766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7958766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7957766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7956766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7955766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7954766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7953766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7952766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7951766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7900766b796c756b6d6d6d6d6d6ca97ea97ea86b6d6d6d6d6d6d6d6d6d6d6d6c0123797653798b0120957f7553790120957f775279886d7501157901157901157901157901157901157901157901157901157901157901157901157901157901157901157901157901157901157901157901157901157901157901157901157901157901157953766b796c7553766b796c7587916953766b796c7552766b796c7587916953766b796c7551766b796c7587916952766b796c7552766b796c7587916952766b796c7551766b796c7587916951766b796c7551766b796c758791696d6d01157901157901157901157953766b796c756b6d6d6c827d7701209d01127901127901127901127953766b796c756b6d6d6c00a2695e795e795e795e7953766b796c756b6d6d6c00a2697501157901157901157901157952766b796c756b6d6d6c827d7701209d01127901127901127901127952766b796c756b6d6d6c00a2695e795e795e795e7952766b796c756b6d6d6c00a2697501157901157901157901157951766b796c756b6d6d6c827d7701209d01127901127901127901127951766b796c756b6d6d6c00a2695e795e795e795e7951766b796c756b6d6d6c00a2697501157901157901157901157900766b796c756b6d6d6c827d7701209d01127901127901127901127900766b796c756b6d6d6c00a2695e795e795e795e7900766b796c756b6d6d6c00a26975597959795979597959795979597959795979597959766b796c756b6d6d6d6d6d6c764fa26376549f6700686975597959795979597959795979597959795979597958766b796c756b6d6d6d6d6d6c764fa26376549f6700686975597959795979597959795979597959795979597957766b796c756b6d6d6d6d6d6c764fa26376549f6700686975597959795979597959795979597959795979597956766b796c756b6d6d6d6d6d6c764fa26376549f6700686975597959795979597959795979597959795979597955766b796c756b6d6d6d6d6d6c764fa26376549f6700686975597959795979597959795979597959795979597954766b796c756b6d6d6d6d6d6c764fa26376549f6700686975597959795979597959795979597959795979597953766b796c756b6d6d6d6d6d6c764fa26376549f6700686975597959795979597959795979597959795979597952766b796c756b6d6d6d6d6d6c764fa26376549f6700686975597959795979597959795979597959795979597951766b796c756b6d6d6d6d6d6c764fa26376549f6700686975597959795979597959795979597959795979597900766b796c756b6d6d6d6d6d6c764fa26376549f67006869756d6d6d6d6d6d6d6d6d6d6d00011c79011c79011c79011c79011a79011a79011a79011a7953766b796c756b6d6d6c54766b796c7587645479768b567a757171557a7568011a79011a79011a79011a7952766b796c756b6d6d6c53766b796c7587645479768b567a757171557a7568011a79011a79011a79011a7951766b796c756b6d6d6c52766b796c7587645479768b567a757171557a7568011a79011a79011a79011a7900766b796c756b6d6d6c51766b796c7587645479768b567a757171557a75680055799f63011a79011a79011a79011a7953766b796c756b6d6d6c54766b796c75879169011a79011a79011a79011a7953766b796c756b6d6d6c827701209d67011a79011a79011a79011a7953766b796c756b6d6d6c54766b796c7588685155799f63011a79011a79011a79011a7952766b796c756b6d6d6c53766b796c75879169011a79011a79011a79011a7952766b796c756b6d6d6c827701209d67011a79011a79011a79011a7952766b796c756b6d6d6c53766b796c7588685255799f63011a79011a79011a79011a7951766b796c756b6d6d6c52766b796c75879169011a79011a79011a79011a7951766b796c756b6d6d6c827701209d67011a79011a79011a79011a7951766b796c756b6d6d6c52766b796c7588685355799f63011a79011a79011a79011a7900766b796c756b6d6d6c51766b796c75879169011a79011a79011a79011a7900766b796c756b6d6d6c827701209d67011a79011a79011a79011a7900766b796c756b6d6d6c51766b796c758868547900a069000000004f01207901147901147901147901147901147901147901147901147901147901147959766b796c756b6d6d6d6d6d6c0052799f63765c799f69764f9e630121790121790121790121795455797600a26976549f69948c766b796c756b6d6d6c76012e79006e8b0120957f75780120957f777777880172766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012879886d75012e79006e8b0120957f75780120957f7777770173766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c750173766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701157901157901157901157901157901157901157901157901157901157959766b796c756b6d6d6d6d6d6c4f9d687501147901147901147901147901147901147901147901147901147901147958766b796c756b6d6d6d6d6d6c5152799f63765c799f69764f9e630121790121790121790121795455797600a26976549f69948c766b796c756b6d6d6c76012e79516e8b0120957f75780120957f77777788016f766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012879886d75012e79516e8b0120957f75780120957f7777770170766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c750170766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701157901157901157901157901157901157901157901157901157901157958766b796c756b6d6d6d6d6d6c4f9d687501147901147901147901147901147901147901147901147901147901147957766b796c756b6d6d6d6d6d6c5252799f63765c799f69764f9e630121790121790121790121795455797600a26976549f69948c766b796c756b6d6d6c76012e79526e8b0120957f75780120957f77777788016c766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012879886d75012e79526e8b0120957f75780120957f777777016d766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c75016d766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701157901157901157901157901157901157901157901157901157901157957766b796c756b6d6d6d6d6d6c4f9d687501147901147901147901147901147901147901147901147901147901147956766b796c756b6d6d6d6d6d6c5352799f63765c799f69764f9e630121790121790121790121795455797600a26976549f69948c766b796c756b6d6d6c76012e79536e8b0120957f75780120957f777777880169766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012879886d75012e79536e8b0120957f75780120957f777777016a766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c75016a766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701157901157901157901157901157901157901157901157901157901157956766b796c756b6d6d6d6d6d6c4f9d687501147901147901147901147901147901147901147901147901147901147955766b796c756b6d6d6d6d6d6c5452799f63765c799f69764f9e630121790121790121790121795455797600a26976549f69948c766b796c756b6d6d6c76012e79546e8b0120957f75780120957f777777880166766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012879886d75012e79546e8b0120957f75780120957f7777770167766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c750167766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701157901157901157901157901157901157901157901157901157901157955766b796c756b6d6d6d6d6d6c4f9d687501147901147901147901147901147901147901147901147901147901147954766b796c756b6d6d6d6d6d6c5552799f63765c799f69764f9e630121790121790121790121795455797600a26976549f69948c766b796c756b6d6d6c76012e79556e8b0120957f75780120957f777777880163766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012879886d75012e79556e8b0120957f75780120957f7777770164766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c750164766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701157901157901157901157901157901157901157901157901157901157954766b796c756b6d6d6d6d6d6c4f9d687501147901147901147901147901147901147901147901147901147901147953766b796c756b6d6d6d6d6d6c5652799f63765c799f69764f9e630121790121790121790121795455797600a26976549f69948c766b796c756b6d6d6c76012e79566e8b0120957f75780120957f777777880160766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012879886d75012e79566e8b0120957f75780120957f7777770161766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c750161766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701157901157901157901157901157901157901157901157901157901157953766b796c756b6d6d6d6d6d6c4f9d687501147901147901147901147901147901147901147901147901147901147952766b796c756b6d6d6d6d6d6c5752799f63765c799f69764f9e630121790121790121790121795455797600a26976549f69948c766b796c756b6d6d6c76012e79576e8b0120957f75780120957f77777788015d766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012879886d75012e79576e8b0120957f75780120957f777777015e766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c75015e766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701157901157901157901157901157901157901157901157901157901157952766b796c756b6d6d6d6d6d6c4f9d687501147901147901147901147901147901147901147901147901147901147951766b796c756b6d6d6d6d6d6c5852799f63765c799f69764f9e630121790121790121790121795455797600a26976549f69948c766b796c756b6d6d6c76012e79586e8b0120957f75780120957f77777788015a766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012879886d75012e79586e8b0120957f75780120957f777777015b766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c75015b766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701157901157901157901157901157901157901157901157901157901157951766b796c756b6d6d6d6d6d6c4f9d687501147901147901147901147901147901147901147901147901147901147900766b796c756b6d6d6d6d6d6c5952799f63765c799f69764f9e630121790121790121790121795455797600a26976549f69948c766b796c756b6d6d6c76012e79596e8b0120957f75780120957f777777880157766b796c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0695279012879886d75012e79596e8b0120957f75780120957f7777770158766b796c766b796c766b796c7552798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea8777777885752797600a26976549f6994766b796c750158766b796c766b796c766b796c7577776e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75785479a0637867537968547a7572537a75686701157901157901157901157901157901157901157901157901157901157900766b796c756b6d6d6d6d6d6c4f9d68757800a263785b798c9c6700686901527900a2630152795aa1670068690000000000000158799f63029d00766b796c7877827700a069028a00766b796c78770112799f69764f9e63029500766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75012a7953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea877777702ab00766b796c7578880129790129790129790129795457797600a26976549f69948c766b796c756b6d6d6c557978028600766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67029500766b796c75009d7801287901287901287901287953766b796c756b6d6d6c8791697801287901287901287901287952766b796c756b6d6d6c8791697801287901287901287901287951766b796c756b6d6d6c8791697801287901287901287901287900766b796c756b6d6d6c8791696f75028300766b796c7502ac00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67029d00766b796c758277009d028900766b796c754f9d029300766b796c75009d02a700766b796c750088017f766b796c75009d68510158799f63029c00766b796c7877827700a069028900766b796c78770112799f69764f9e63029400766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75012a7953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea877777702aa00766b796c7578880129790129790129790129795457797600a26976549f69948c766b796c756b6d6d6c557978028500766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67029400766b796c75009d7801287901287901287901287953766b796c756b6d6d6c8791697801287901287901287901287952766b796c756b6d6d6c8791697801287901287901287901287951766b796c756b6d6d6c8791697801287901287901287901287900766b796c756b6d6d6c8791696f75028200766b796c7502ab00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67029c00766b796c758277009d028800766b796c754f9d029200766b796c75009d02a600766b796c750088017e766b796c75009d68520158799f63029b00766b796c7877827700a069028800766b796c78770112799f69764f9e63029300766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75012a7953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea877777702a900766b796c7578880129790129790129790129795457797600a26976549f69948c766b796c756b6d6d6c557978028400766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67029300766b796c75009d7801287901287901287901287953766b796c756b6d6d6c8791697801287901287901287901287952766b796c756b6d6d6c8791697801287901287901287901287951766b796c756b6d6d6c8791697801287901287901287901287900766b796c756b6d6d6c8791696f75028100766b796c7502aa00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67029b00766b796c758277009d028700766b796c754f9d029100766b796c75009d02a500766b796c750088017d766b796c75009d68530158799f63029a00766b796c7877827700a069028700766b796c78770112799f69764f9e63029200766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75012a7953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea877777702a800766b796c7578880129790129790129790129795457797600a26976549f69948c766b796c756b6d6d6c557978028300766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67029200766b796c75009d7801287901287901287901287953766b796c756b6d6d6c8791697801287901287901287901287952766b796c756b6d6d6c8791697801287901287901287901287951766b796c756b6d6d6c8791697801287901287901287901287900766b796c756b6d6d6c8791696f75028000766b796c7502a900766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67029a00766b796c758277009d028600766b796c754f9d029000766b796c75009d02a400766b796c750088017c766b796c75009d68540158799f63029900766b796c7877827700a069028600766b796c78770112799f69764f9e63029100766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75012a7953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea877777702a700766b796c7578880129790129790129790129795457797600a26976549f69948c766b796c756b6d6d6c557978028200766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67029100766b796c75009d7801287901287901287901287953766b796c756b6d6d6c8791697801287901287901287901287952766b796c756b6d6d6c8791697801287901287901287901287951766b796c756b6d6d6c8791697801287901287901287901287900766b796c756b6d6d6c8791696f75017f766b796c7502a800766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67029900766b796c758277009d028500766b796c754f9d028f00766b796c75009d02a300766b796c750088017b766b796c75009d68550158799f63029800766b796c7877827700a069028500766b796c78770112799f69764f9e63029000766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75012a7953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea877777702a600766b796c7578880129790129790129790129795457797600a26976549f69948c766b796c756b6d6d6c557978028100766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67029000766b796c75009d7801287901287901287901287953766b796c756b6d6d6c8791697801287901287901287901287952766b796c756b6d6d6c8791697801287901287901287901287951766b796c756b6d6d6c8791697801287901287901287901287900766b796c756b6d6d6c8791696f75017e766b796c7502a700766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67029800766b796c758277009d028400766b796c754f9d028e00766b796c75009d02a200766b796c750088017a766b796c75009d68560158799f63029700766b796c7877827700a069028400766b796c78770112799f69764f9e63028f00766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75012a7953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea877777702a500766b796c7578880129790129790129790129795457797600a26976549f69948c766b796c756b6d6d6c557978028000766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67028f00766b796c75009d7801287901287901287901287953766b796c756b6d6d6c8791697801287901287901287901287952766b796c756b6d6d6c8791697801287901287901287901287951766b796c756b6d6d6c8791697801287901287901287901287900766b796c756b6d6d6c8791696f75017d766b796c7502a600766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67029700766b796c758277009d028300766b796c754f9d028d00766b796c75009d02a100766b796c7500880179766b796c75009d68570158799f63029600766b796c7877827700a069028300766b796c78770112799f69764f9e63028e00766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75012a7953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea877777702a400766b796c7578880129790129790129790129795457797600a26976549f69948c766b796c756b6d6d6c557978017f766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67028e00766b796c75009d7801287901287901287901287953766b796c756b6d6d6c8791697801287901287901287901287952766b796c756b6d6d6c8791697801287901287901287901287951766b796c756b6d6d6c8791697801287901287901287901287900766b796c756b6d6d6c8791696f75017c766b796c7502a500766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67029600766b796c758277009d028200766b796c754f9d028c00766b796c75009d02a000766b796c7500880178766b796c75009d68580158799f63029500766b796c7877827700a069028200766b796c78770112799f69764f9e63028d00766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75012a7953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea877777702a300766b796c7578880129790129790129790129795457797600a26976549f69948c766b796c756b6d6d6c557978017e766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67028d00766b796c75009d7801287901287901287901287953766b796c756b6d6d6c8791697801287901287901287901287952766b796c756b6d6d6c8791697801287901287901287901287951766b796c756b6d6d6c8791697801287901287901287901287900766b796c756b6d6d6c8791696f75017b766b796c7502a400766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67029500766b796c758277009d028100766b796c754f9d028b00766b796c75009d029f00766b796c7500880177766b796c75009d68590158799f63029400766b796c7877827700a069028100766b796c78770112799f69764f9e63028c00766b796c787700a0695752797600a26976549f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976549f69597a78008763757868597a527951876375527968597a537952876375537968597a547953876375547968547a75587a587a587a587a587a75012a7953796f758277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea877777702a200766b796c7578880129790129790129790129795457797600a26976549f69948c766b796c756b6d6d6c557978017d766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67028c00766b796c75009d7801287901287901287901287953766b796c756b6d6d6c8791697801287901287901287901287952766b796c756b6d6d6c8791697801287901287901287901287951766b796c756b6d6d6c8791697801287901287901287901287900766b796c756b6d6d6c8791696f75017a766b796c7502a300766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67029400766b796c758277009d028000766b796c754f9d028a00766b796c75009d029e00766b796c7500880176766b796c75009d685a766b796c7501227901227901227901227953766b796c756b6d6d6c9d5a766b796c7555766b796c75011f79011f79011f79011f7953766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d0060799f635a766b796c7500a069675a766b796c75009d54766b796c75009d01217901217901217901217953766b796c756b6d6d6c009d011d79011d79011d79011d7953766b796c756b6d6d6c009d6859766b796c7501227901227901227901227952766b796c756b6d6d6c9d59766b796c7554766b796c75011f79011f79011f79011f7952766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d5160799f6359766b796c7500a0696759766b796c75009d53766b796c75009d01217901217901217901217952766b796c756b6d6d6c009d011d79011d79011d79011d7952766b796c756b6d6d6c009d6858766b796c7501227901227901227901227951766b796c756b6d6d6c9d58766b796c7553766b796c75011f79011f79011f79011f7951766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d5260799f6358766b796c7500a0696758766b796c75009d52766b796c75009d01217901217901217901217951766b796c756b6d6d6c009d011d79011d79011d79011d7951766b796c756b6d6d6c009d6857766b796c7501227901227901227901227900766b796c756b6d6d6c9d57766b796c7552766b796c75011f79011f79011f79011f7900766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d5360799f6357766b796c7500a0696757766b796c75009d51766b796c75009d01217901217901217901217900766b796c756b6d6d6c009d011d79011d79011d79011d7900766b796c756b6d6d6c009d6876aa014d79876b6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c"
447
447
  }
@@ -12,9 +12,9 @@ import "../scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt"
12
12
 
13
13
 
14
14
 
15
- contract _opcat_labs_cat_sdk_1_0_2__rs__CAT20Guard {
15
+ contract _opcat_labs_cat_sdk_1_0_3__rs__CAT20Guard {
16
16
  constructor(){}
17
- public function unlock(bytes[6] nextStateHashes, bytes[6] ownerAddrOrScriptHashes, int[6] outputTokens, int[6] tokenScriptHashIndexes, int[6] outputSatoshis, _opcat_labs_cat_sdk_1_0_2__rs__CAT20State[6] cat20States, int outputCount, _opcat_labs_scrypt_ts_opcat_1_0_4__rs__SHPreimage __scrypt_ts_shPreimage, _opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes) {
17
+ public function unlock(bytes[10] nextStateHashes, bytes[10] ownerAddrOrScriptHashes, int[10] outputTokens, int[10] tokenScriptHashIndexes, int[10] outputSatoshis, _opcat_labs_cat_sdk_1_0_3__rs__CAT20State[10] cat20States, int outputCount, _opcat_labs_scrypt_ts_opcat_1_0_4__rs__SHPreimage __scrypt_ts_shPreimage, _opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes) {
18
18
  require(Tx.checkPreimageSigHashType(_opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage), SigHash.ALL));
19
19
 
20
20
  int __scrypt_ts_inputCount = _opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
@@ -23,13 +23,13 @@ contract _opcat_labs_cat_sdk_1_0_2__rs__CAT20Guard {
23
23
 
24
24
  _opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
25
25
 
26
- _opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState __scrypt_ts_nextState = __scrypt_ts_curState;
26
+ _opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState __scrypt_ts_nextState = __scrypt_ts_curState;
27
27
 
28
- _opcat_labs_scrypt_ts_opcat_1_0_4__rs__StateUtils.checkInputState(__scrypt_ts_shPreimage.inputIndex, _opcat_labs_cat_sdk_1_0_2__rs__CAT20Guard.stateHash(__scrypt_ts_curState), __scrypt_ts_spentDataHashes);
28
+ _opcat_labs_scrypt_ts_opcat_1_0_4__rs__StateUtils.checkInputState(__scrypt_ts_shPreimage.inputIndex, _opcat_labs_cat_sdk_1_0_3__rs__CAT20Guard.stateHash(__scrypt_ts_curState), __scrypt_ts_spentDataHashes);
29
29
 
30
- _opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardStateLib.formalCheckState(__scrypt_ts_nextState);
30
+ _opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardStateLib.formalCheckState(__scrypt_ts_nextState);
31
31
  int inputTokenTypes = 0;
32
- bytes[4] tokenScriptPlaceholders = [_opcat_labs_cat_sdk_1_0_2__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FF, _opcat_labs_cat_sdk_1_0_2__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FE, _opcat_labs_cat_sdk_1_0_2__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FD, _opcat_labs_cat_sdk_1_0_2__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FC];
32
+ bytes[4] tokenScriptPlaceholders = [_opcat_labs_cat_sdk_1_0_3__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FF, _opcat_labs_cat_sdk_1_0_3__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FE, _opcat_labs_cat_sdk_1_0_3__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FD, _opcat_labs_cat_sdk_1_0_3__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FC];
33
33
  loop (4) : i {
34
34
  if(__scrypt_ts_nextState.tokenScriptHashes[i] != tokenScriptPlaceholders[i]) {
35
35
  inputTokenTypes++;
@@ -47,16 +47,16 @@ contract _opcat_labs_cat_sdk_1_0_2__rs__CAT20Guard {
47
47
  int[4] sumInputTokens = repeat(0, 4);
48
48
  int tokenScriptIndexMax = -1;
49
49
  int inputCount = __scrypt_ts_inputCount;
50
- loop (6) : i {
50
+ loop (10) : i {
51
51
  int tokenScriptIndex = __scrypt_ts_nextState.tokenScriptIndexes[(i)];
52
52
  if(i < inputCount) {
53
53
  require(tokenScriptIndex < inputTokenTypes);
54
54
  if(tokenScriptIndex != -1) {
55
55
  bytes tokenScriptHash = __scrypt_ts_nextState.tokenScriptHashes[(tokenScriptIndex)];
56
56
  require(tokenScriptHash == _opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.getSpentScriptHash(__scrypt_ts_spentScriptHashes, (i)));
57
- _opcat_labs_cat_sdk_1_0_2__rs__CAT20StateLib.checkState(cat20States[i]);
58
- require(_opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.getSpentDataHash(__scrypt_ts_spentDataHashes, (i)) == _opcat_labs_cat_sdk_1_0_2__rs__CAT20StateLib.stateHash(cat20States[i]));
59
- sumInputTokens[(tokenScriptIndex)] = _opcat_labs_cat_sdk_1_0_2__rs__SafeMath.add(sumInputTokens[(tokenScriptIndex)], cat20States[i].amount);
57
+ _opcat_labs_cat_sdk_1_0_3__rs__CAT20StateLib.checkState(cat20States[i]);
58
+ require(_opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.getSpentDataHash(__scrypt_ts_spentDataHashes, (i)) == _opcat_labs_cat_sdk_1_0_3__rs__CAT20StateLib.stateHash(cat20States[i]));
59
+ sumInputTokens[(tokenScriptIndex)] = _opcat_labs_cat_sdk_1_0_3__rs__SafeMath.add(sumInputTokens[(tokenScriptIndex)], cat20States[i].amount);
60
60
  tokenScriptIndexMax = tokenScriptIndex > tokenScriptIndexMax ? tokenScriptIndex : tokenScriptIndexMax;
61
61
  }
62
62
  } else {
@@ -64,10 +64,10 @@ contract _opcat_labs_cat_sdk_1_0_2__rs__CAT20Guard {
64
64
  }
65
65
  }
66
66
  require(tokenScriptIndexMax >= 0 && tokenScriptIndexMax == inputTokenTypes - 1);
67
- require(outputCount >= 0 && outputCount <= 6);
67
+ require(outputCount >= 0 && outputCount <= 10);
68
68
  int[4] sumOutputTokens = repeat(0, 4);
69
69
  bytes outputs = b'';
70
- loop (6) : i {
70
+ loop (10) : i {
71
71
  if(i < outputCount) {
72
72
  bytes ownerAddrOrScriptHash = ownerAddrOrScriptHashes[i];
73
73
  require(len(ownerAddrOrScriptHash) > 0);
@@ -76,8 +76,8 @@ contract _opcat_labs_cat_sdk_1_0_2__rs__CAT20Guard {
76
76
  if(tokenScriptHashIndex != -1) {
77
77
  int tokenAmount = outputTokens[i];
78
78
  require(tokenAmount > 0);
79
- sumOutputTokens[(tokenScriptHashIndex)] = _opcat_labs_cat_sdk_1_0_2__rs__SafeMath.add(sumOutputTokens[(tokenScriptHashIndex)], tokenAmount);
80
- bytes tokenStateHash = _opcat_labs_cat_sdk_1_0_2__rs__CAT20StateLib.stateHash({_opcat_labs_cat_sdk_1_0_2__rs__ConstantsLib.OPCAT_CAT20_TAG, ownerAddrOrScriptHash, tokenAmount});
79
+ sumOutputTokens[(tokenScriptHashIndex)] = _opcat_labs_cat_sdk_1_0_3__rs__SafeMath.add(sumOutputTokens[(tokenScriptHashIndex)], tokenAmount);
80
+ bytes tokenStateHash = _opcat_labs_cat_sdk_1_0_3__rs__CAT20StateLib.stateHash({_opcat_labs_cat_sdk_1_0_3__rs__ConstantsLib.OPCAT_CAT20_TAG, ownerAddrOrScriptHash, tokenAmount});
81
81
  require(nextStateHashes[i] == tokenStateHash);
82
82
  bytes tokenScriptHash = __scrypt_ts_nextState.tokenScriptHashes[(tokenScriptHashIndex)];
83
83
  outputs += _opcat_labs_scrypt_ts_opcat_1_0_4__rs__TxUtils.buildDataOutput(tokenScriptHash, outputSatoshis[i], tokenStateHash);
@@ -98,7 +98,7 @@ contract _opcat_labs_cat_sdk_1_0_2__rs__CAT20Guard {
98
98
  }
99
99
  loop (4) : i {
100
100
  require(sumInputTokens[i] == __scrypt_ts_nextState.tokenAmounts[i]);
101
- require(sumInputTokens[i] == _opcat_labs_cat_sdk_1_0_2__rs__SafeMath.add(sumOutputTokens[i], __scrypt_ts_nextState.tokenBurnAmounts[i]));
101
+ require(sumInputTokens[i] == _opcat_labs_cat_sdk_1_0_3__rs__SafeMath.add(sumOutputTokens[i], __scrypt_ts_nextState.tokenBurnAmounts[i]));
102
102
  if(i < (inputTokenTypes)) {
103
103
  require(sumInputTokens[i] > 0);
104
104
  } else {
@@ -110,10 +110,10 @@ contract _opcat_labs_cat_sdk_1_0_2__rs__CAT20Guard {
110
110
  }
111
111
  require(hash256(outputs) == __scrypt_ts_shPreimage.hashOutputs);
112
112
  }
113
- static function serializeState(_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
114
- return num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])));
113
+ static function serializeState(_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
114
+ return num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[6])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[6]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[7])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[7]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[8])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[8]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[9])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[9]) + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[6])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[7])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[8])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[9])));
115
115
  }
116
- static function stateHash(_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
117
- return sha256(num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5]))));
116
+ static function stateHash(_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
117
+ return sha256(num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[6])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[6]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[7])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[7]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[8])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[8]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[9])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[9]) + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[6])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[7])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[8])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[9]))));
118
118
  }
119
119
  }
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "version": 10,
3
3
  "compilerVersion": "1.21.0+commit.2ada378",
4
- "contract": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardStateLib",
4
+ "contract": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardStateLib",
5
5
  "md5": "d41d8cd98f00b204e9800998ecf8427e",
6
6
  "structs": [
7
7
  {
8
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState",
8
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState",
9
9
  "params": [
10
10
  {
11
11
  "name": "tokenScriptHashes",
@@ -21,13 +21,13 @@
21
21
  },
22
22
  {
23
23
  "name": "tokenScriptIndexes",
24
- "type": "int[6]"
24
+ "type": "int[10]"
25
25
  }
26
26
  ],
27
27
  "genericTypes": []
28
28
  },
29
29
  {
30
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20State",
30
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20State",
31
31
  "params": [
32
32
  {
33
33
  "name": "tag",
@@ -45,7 +45,7 @@
45
45
  "genericTypes": []
46
46
  },
47
47
  {
48
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20ClosedMinterState",
48
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20ClosedMinterState",
49
49
  "params": [
50
50
  {
51
51
  "name": "tag",
@@ -59,7 +59,7 @@
59
59
  "genericTypes": []
60
60
  },
61
61
  {
62
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__ClosedMinterCAT20Meta",
62
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__ClosedMinterCAT20Meta",
63
63
  "params": [
64
64
  {
65
65
  "name": "tag",
@@ -85,7 +85,7 @@
85
85
  "genericTypes": []
86
86
  },
87
87
  {
88
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__OpenMinterCAT20Meta",
88
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__OpenMinterCAT20Meta",
89
89
  "params": [
90
90
  {
91
91
  "name": "tag",
@@ -127,7 +127,7 @@
127
127
  "genericTypes": []
128
128
  },
129
129
  {
130
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20OpenMinterState",
130
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20OpenMinterState",
131
131
  "params": [
132
132
  {
133
133
  "name": "tag",
@@ -321,11 +321,11 @@
321
321
  ],
322
322
  "library": [
323
323
  {
324
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardStateLib",
324
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardStateLib",
325
325
  "params": [],
326
326
  "properties": [],
327
327
  "genericTypes": [],
328
- "stateType": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState"
328
+ "stateType": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState"
329
329
  },
330
330
  {
331
331
  "name": "_opcat_labs_scrypt_ts_opcat_1_0_4__rs__TxUtils",
@@ -354,7 +354,7 @@
354
354
  }
355
355
  ],
356
356
  "stateProps": [],
357
- "stateType": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState",
357
+ "stateType": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState",
358
358
  "buildType": "release",
359
359
  "file": "..\\cat20GuardStateLib.scrypt",
360
360
  "hex": ""
@@ -5,16 +5,16 @@ import "../scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scryp
5
5
 
6
6
 
7
7
 
8
- library _opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardStateLib {
9
- static function formalCheckState(_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState _state) : bytes {
10
- _opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardStateLib.checkTokenScriptsUniq(_state.tokenScriptHashes);
8
+ library _opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardStateLib {
9
+ static function formalCheckState(_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState _state) : bytes {
10
+ _opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardStateLib.checkTokenScriptsUniq(_state.tokenScriptHashes);
11
11
  loop (4) : i {
12
12
  int scriptLen = len(_state.tokenScriptHashes[i]);
13
13
  require(scriptLen == 32);
14
14
  require(_state.tokenAmounts[i] >= 0);
15
15
  require(_state.tokenBurnAmounts[i] >= 0);
16
16
  }
17
- loop (6) : i {
17
+ loop (10) : i {
18
18
  int scriptIndex = _state.tokenScriptIndexes[i];
19
19
  require(scriptIndex >= -1 && scriptIndex < 4);
20
20
  }
@@ -29,10 +29,10 @@ library _opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardStateLib {
29
29
  require(tokenScripts[2] != tokenScripts[3]);
30
30
  return true;
31
31
  }
32
- static function serializeState(_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
33
- return num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])));
32
+ static function serializeState(_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
33
+ return num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[6])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[6]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[7])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[7]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[8])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[8]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[9])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[9]) + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[6])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[7])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[8])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[9])));
34
34
  }
35
- static function stateHash(_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
36
- return sha256(num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5]))));
35
+ static function stateHash(_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
36
+ return sha256(num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[6])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[6]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[7])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[7]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[8])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[8]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[9])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[9]) + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[6])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[7])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[8])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[9]))));
37
37
  }
38
38
  }