ftsrg / blockchain-benchmarks-tpcc

TPC-C benchmark implementations for blockchain platforms
Apache License 2.0
0 stars 0 forks source link

Chaincode execution fails when compiled with OpenJML #5

Closed bzp99 closed 1 year ago

bzp99 commented 1 year ago

Our problem:

Exception in thread "main" java.lang.VerifyError: Bad local variable type
Exception Details:
  Location:
    org/example/TPCC.doStockLevel(Lorg/hyperledger/fabric/contract/Context;Ljava/lang/String;)Lorg/example/DoStockLevelOutput; @2008: iload
  Reason:
    Type 'java/lang/String' (current frame, locals[8]) is not assignable to integer
  Current Frame:
    bci: @2008
    flags: { }
    locals: { 'org/example/TPCC', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'java/lang/Exception', integer, 'org/example/DoStockLevelOutput', integer, 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', integer, 'java/lang/String', 'java/util/logging/Logger', integer, 'java/lang/String', 'org/example/StockLevelParameters', integer, 'org/example/StockLevelParameters', integer, 'org/hyperledger/fabric/contract/Context', integer, integer, 'org/example/District', integer, 'org/example/District', integer, integer, integer, integer, integer, integer, 'org/hyperledger/fabric/contract/Context', integer, integer, integer, integer, 'java/util/List', integer, 'java/util/List', integer, integer, 'java/util/Iterator', 'java/lang/Integer', 'java/lang/Integer', integer, 'org/hyperledger/fabric/contract/Context', integer }

The full error log, for reference:

Thread[main,5,main] 11:39:56:320 INFO    java.util.logging.LogManager$RootLogger log                                      Updated all handlers the format
Thread[main,5,main] 11:39:56:320 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              <<<<<<<<<<<<<Environment options>>>>>>>>>>>>
Thread[main,5,main] 11:39:56:320 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              CORE_CHAINCODE_ID_NAME: tpcc:a03d5726c28a155d993f6789701908d88746d0e5f0c9078860a7b4ae18411886
Thread[main,5,main] 11:39:56:320 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              CORE_PEER_ADDRESS: 127.0.0.1
Thread[main,5,main] 11:39:56:320 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              CORE_PEER_TLS_ENABLED: false
Thread[main,5,main] 11:39:56:320 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              CORE_PEER_TLS_ROOTCERT_FILE: null
Thread[main,5,main] 11:39:56:320 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              CORE_TLS_CLIENT_KEY_PATH: null
Thread[main,5,main] 11:39:56:320 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              CORE_TLS_CLIENT_CERT_PATH: null
Thread[main,5,main] 11:39:56:330 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              CORE_TLS_CLIENT_KEY_FILE: null
Thread[main,5,main] 11:39:56:330 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              CORE_TLS_CLIENT_CERT_FILE: null
Thread[main,5,main] 11:39:56:330 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              CORE_PEER_LOCALMSPID: 
Thread[main,5,main] 11:39:56:330 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              CHAINCODE_SERVER_ADDRESS: 0.0.0.0:9999
Thread[main,5,main] 11:39:56:340 INFO    org.hyperledger.fabric.shim.ChaincodeBase processEnvironmentOptions              LOGLEVEL: null
Thread[main,5,main] 11:39:56:360 INFO    org.hyperledger.fabric.shim.ChaincodeBase processCommandLineOptions              <<<<<<<<<<<<<CommandLine options>>>>>>>>>>>>
Thread[main,5,main] 11:39:56:360 INFO    org.hyperledger.fabric.shim.ChaincodeBase processCommandLineOptions              CORE_CHAINCODE_ID_NAME: tpcc:a03d5726c28a155d993f6789701908d88746d0e5f0c9078860a7b4ae18411886
Thread[main,5,main] 11:39:56:360 INFO    org.hyperledger.fabric.shim.ChaincodeBase processCommandLineOptions              CORE_PEER_ADDRESS: 127.0.0.1:7051
Thread[main,5,main] 11:39:56:360 INFO    org.hyperledger.fabric.shim.ChaincodeBase getChaincodeConfig                     <<<<<<<<<<<<<Properties options>>>>>>>>>>>>
Thread[main,5,main] 11:39:56:450 INFO    org.hyperledger.fabric.shim.ChaincodeBase getChaincodeConfig                     {CORE_CHAINCODE_ID_NAME=tpcc:a03d5726c28a155d993f6789701908d88746d0e5f0c9078860a7b4ae18411886, CORE_PEER_ADDRESS=127.0.0.1}
Thread[main,5,main] 11:39:56:470 INFO    org.hyperledger.fabric.metrics.Metrics initialize                                Metrics disabled
Thread[main,5,main] 11:39:56:470 INFO    org.hyperledger.fabric.traces.Traces initialize                                  Traces disabled
Exception in thread "main" java.lang.VerifyError: Bad local variable type
Exception Details:
  Location:
    org/example/TPCC.doStockLevel(Lorg/hyperledger/fabric/contract/Context;Ljava/lang/String;)Lorg/example/DoStockLevelOutput; @2008: iload
  Reason:
    Type 'java/lang/String' (current frame, locals[8]) is not assignable to integer
  Current Frame:
    bci: @2008
    flags: { }
    locals: { 'org/example/TPCC', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'java/lang/Exception', integer, 'org/example/DoStockLevelOutput', integer, 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', 'org/hyperledger/fabric/contract/Context', 'java/lang/String', integer, 'java/lang/String', 'java/util/logging/Logger', integer, 'java/lang/String', 'org/example/StockLevelParameters', integer, 'org/example/StockLevelParameters', integer, 'org/hyperledger/fabric/contract/Context', integer, integer, 'org/example/District', integer, 'org/example/District', integer, integer, integer, integer, integer, integer, 'org/hyperledger/fabric/contract/Context', integer, integer, integer, integer, 'java/util/List', integer, 'java/util/List', integer, integer, 'java/util/Iterator', 'java/lang/Integer', 'java/lang/Integer', integer, 'org/hyperledger/fabric/contract/Context', integer }
    stack: { }
  Bytecode:
    0x0000000: 014e 0336 0401 3a05 0336 0603 b800 203a
    0x0000010: 072b c600 0704 a700 0403 3608 1508 b800
    0x0000020: 203a 0703 b800 203a 0819 07b6 0021 9900
    0x0000030: 152c c600 0704 a700 0403 3609 1509 b800
    0x0000040: 203a 0819 08b6 0021 3606 a700 0c3a 0712
    0x0000050: 2219 07b8 0004 013a 072b 3a07 a700 1d3a
    0x0000060: 08a7 0018 3a08 1908 01b8 0006 a700 0d3a
    0x0000070: 0819 0813 01a7 b800 0901 3a08 2c3a 08a7
    0x0000080: 001d 3a09 a700 183a 0919 0901 b800 06a7
    0x0000090: 000d 3a09 1909 1301 a7b8 0009 013a 092b
    0x00000a0: 3a09 a700 1d3a 0aa7 0018 3a0a 190a 01b8
    0x00000b0: 0006 a700 0d3a 0a19 0a13 01a7 b800 0901
    0x00000c0: 3a0a 2c3a 0aa7 001d 3a0b a700 183a 0b19
    0x00000d0: 0b01 b800 06a7 000d 3a0b 190b 1301 a7b8
    0x00000e0: 0009 013a 0b2b 3a0b a700 1d3a 0ca7 0018
    0x00000f0: 3a0c 190c 01b8 0006 a700 0d3a 0c19 0c13
    0x0000100: 01a7 b800 0901 3a0c 2c3a 0ca7 001d 3a0d
    0x0000110: a700 183a 0d19 0d01 b800 06a7 000d 3a0d
    0x0000120: 190d 1301 a7b8 0009 013a 0d2b 3a0d a700
    0x0000130: 1d3a 0ea7 0018 3a0e 190e 01b8 0006 a700
    0x0000140: 0d3a 0e19 0e13 01a7 b800 0901 3a0e 2c3a
    0x0000150: 0ea7 001d 3a0f a700 183a 0f19 0f01 b800
    0x0000160: 06a7 000d 3a0f 190f 1301 a7b8 0009 013a
    0x0000170: 0f2b 3a0f a700 1d3a 10a7 0018 3a10 1910
    0x0000180: 01b8 0006 a700 0d3a 1019 1013 01a7 b800
    0x0000190: 0901 3a10 2c3a 10a7 001d 3a11 a700 183a
    0x00001a0: 1119 1101 b800 06a7 000d 3a11 1911 1301
    0x00001b0: a7b8 0009 013a 112b 3a11 a700 1d3a 12a7
    0x00001c0: 0018 3a12 1912 01b8 0006 a700 0d3a 1219
    0x00001d0: 1213 01a7 b800 0901 3a12 2c3a 12a7 001d
    0x00001e0: 3a13 a700 183a 1319 1301 b800 06a7 000d
    0x00001f0: 3a13 1913 1301 a7b8 0009 013a 132b 3a13
    0x0000200: a700 1d3a 14a7 0018 3a14 1914 01b8 0006
    0x0000210: a700 0d3a 1419 1413 01a7 b800 0901 3a14
    0x0000220: 2c3a 14a7 001d 3a15 a700 183a 1519 1501
    0x0000230: b800 06a7 000d 3a15 1915 1301 a7b8 0009
    0x0000240: 013a 152b 3a15 a700 1d3a 16a7 0018 3a16
    0x0000250: 1916 01b8 0006 a700 0d3a 1619 1613 01a7
    0x0000260: b800 0901 3a16 2c3a 16a7 001d 3a17 a700
    0x0000270: 183a 1719 1701 b800 06a7 000d 3a17 1917
    0x0000280: 1301 a7b8 0009 0336 17bb 0024 59b7 0025
    0x0000290: 1303 44b6 0027 2cb6 0027 b600 283a 18b2
    0x00002a0: 0014 3a19 0436 17a7 0023 3a1a 1203 191a
    0x00002b0: b800 04a7 0017 3a1a 191a 01b8 0006 a700
    0x00002c0: 0c3a 1a19 1a12 08b8 0009 1517 361a 151a
    0x00002d0: 361b 151b 9a00 0b13 0345 120b b800 0ca7
    0x00002e0: 0024 3a1a 1203 191a b800 04a7 0018 3a1a
    0x00002f0: 191a 01b8 0006 a700 0d3a 1a19 1a13 0346
    0x0000300: b800 0915 1799 0008 1517 9900 0319 1919
    0x0000310: 18b6 002b a700 103a 1a19 1a4e 1189 7836
    0x0000320: 0419 1abf 0336 1a2c 3a1b 013a 1c03 b800
    0x0000330: 203a 1d19 1bc6 0007 04a7 0004 0336 1e15
    0x0000340: 1eb8 0020 3a1d 191d b600 2136 1aa7 0024
    0x0000350: 3a1e 1203 191e b800 04a7 0018 3a1e 191e
    0x0000360: 01b8 0006 a700 0d3a 1e19 1e13 0347 b800
    0x0000370: 0915 1a36 1e15 1e36 1f15 1f9a 0011 1303
    0x0000380: 4813 0349 b800 1c12 0bb8 000c a700 243a
    0x0000390: 1e12 0319 1eb8 0004 a700 183a 1e19 1e01
    0x00003a0: b800 06a7 000d 3a1e 191e 1303 4ab8 0009
    0x00003b0: 151a 9900 0815 1a99 0003 191b b803 4b3a
    0x00003c0: 1c2d c700 03a7 0024 3a1e 1230 191e b800
    0x00003d0: 04a7 0018 3a1e 191e 01b8 0006 a700 0d3a
    0x00003e0: 1e19 1e13 034a b800 0915 1a99 0033 191c
    0x00003f0: c600 0704 a700 0403 361e a700 243a 1e12
    0x0000400: 3119 1eb8 0004 a700 183a 1e19 1e01 b800
    0x0000410: 06a7 000d 3a1e 191e 1303 47b8 0009 a700
    0x0000420: 243a 1e12 3219 1eb8 0004 a700 183a 1e19
    0x0000430: 1e01 b800 06a7 000d 3a1e 191e 1303 47b8
    0x0000440: 0009 a700 103a 1e19 1e4e 1188 e436 0419
    0x0000450: 1ebf 191c c600 0704 a700 0403 361d 151d
    0x0000460: 9a00 0b13 034c 1212 b800 0c19 1c3a 1e03
    0x0000470: 361f 2b3a 2019 1eb4 034d 3621 191e b403
    0x0000480: 4e36 2201 3a23 03b8 0020 3a24 1920 c600
    0x0000490: 0704 a700 0403 3625 1525 b800 203a 2419
    0x00004a0: 24b6 0021 361f a700 233a 2512 0319 25b8
    0x00004b0: 0004 a700 173a 2519 2501 b800 06a7 000c
    0x00004c0: 3a25 1925 12f3 b800 0915 1f36 2515 2536
    0x00004d0: 2615 269a 0011 1303 4f13 0350 b800 1c12
    0x00004e0: 0bb8 000c a700 243a 2512 0319 25b8 0004
    0x00004f0: a700 183a 2519 2501 b800 06a7 000d 3a25
    0x0000500: 1925 1303 51b8 0009 151f 9900 0815 1f99
    0x0000510: 0003 1920 1521 1522 b800 f63a 232d c700
    0x0000520: 03a7 0024 3a25 1230 1925 b800 04a7 0018
    0x0000530: 3a25 1925 01b8 0006 a700 0d3a 2519 2513
    0x0000540: 0351 b800 0915 1f99 0032 1923 c600 0704
    0x0000550: a700 0403 3625 a700 233a 2512 3119 25b8
    0x0000560: 0004 a700 173a 2519 2501 b800 06a7 000c
    0x0000570: 3a25 1925 12f3 b800 09a7 0023 3a25 1232
    0x0000580: 1925 b800 04a7 0017 3a25 1925 01b8 0006
    0x0000590: a700 0c3a 2519 2512 f3b8 0009 a700 103a
    0x00005a0: 2519 254e 1188 1d36 0419 25bf 1923 c600
    0x00005b0: 0704 a700 0403 3624 1524 9a00 0b13 0352
    0x00005c0: 1212 b800 0c19 233a 2503 1925 b400 fca2
    0x00005d0: 0015 1014 9c00 1019 25b4 00fc 1251 1014
    0x00005e0: 60a3 0007 04a7 0004 0336 2615 269a 000b
    0x00005f0: 1303 5312 53b8 000c 1925 b400 fc9c 0016
    0x0000600: 0310 14a2 0010 1254 1014 6019 25b4 00fc
    0x0000610: a300 0704 a700 0403 3627 1527 9a00 0b13
    0x0000620: 0353 1253 b800 0c19 25b4 00fc 1014 6436
    0x0000630: 2815 2836 2919 25b4 00fc 362a 0336 2b2b
    0x0000640: 3a2c 191e b403 4d36 2d19 25b4 0108 362e
    0x0000650: 1529 362f 152a 3630 013a 3103 b800 203a
    0x0000660: 3219 2cc6 0007 04a7 0004 0336 3315 33b8
    0x0000670: 0020 3a32 1932 b600 2136 2ba7 0024 3a33
    0x0000680: 1203 1933 b800 04a7 0018 3a33 1933 01b8
    0x0000690: 0006 a700 0d3a 3319 3313 0354 b800 0915
    0x00006a0: 2b36 3315 3336 3415 349a 0011 1303 5513
    0x00006b0: 0356 b800 1c12 0bb8 000c a700 243a 3312
    0x00006c0: 0319 33b8 0004 a700 183a 3319 3301 b800
    0x00006d0: 06a7 000d 3a33 1933 1303 57b8 0009 152b
    0x00006e0: 9900 0815 2b99 0003 192c 152d 152e 152f
    0x00006f0: 1530 b803 583a 312d c700 03a7 0024 3a33
    0x0000700: 1230 1933 b800 04a7 0018 3a33 1933 01b8
    0x0000710: 0006 a700 0d3a 3319 3313 0357 b800 0915
    0x0000720: 2b99 0033 1931 c600 0704 a700 0403 3633
    0x0000730: a700 243a 3312 3119 33b8 0004 a700 183a
    0x0000740: 3319 3301 b800 06a7 000d 3a33 1933 1303
    0x0000750: 59b8 0009 a700 243a 3312 3219 33b8 0004
    0x0000760: a700 183a 3319 3301 b800 06a7 000d 3a33
    0x0000770: 1933 1303 59b8 0009 a700 103a 3319 334e
    0x0000780: 1186 1036 0419 33bf 1931 c600 0704 a700
    0x0000790: 0403 3632 1532 9a00 0b13 035a 1212 b800
    0x00007a0: 0c19 313a 3303 3634 0336 3519 33b8 035b
    0x00007b0: 3a36 1936 b803 5c9a 0006 a701 e519 36b8
    0x00007c0: 035d c003 5e3a 3719 373a 3803 3639 2b3a
    0x00007d0: 3a19 1eb4 034d 363b 1508 363c 013a 3d03
    0x00007e0: b800 203a 3e19 3ac6 0007 04a7 0004 0336
    0x00007f0: 3f15 3fb8 0020 3a3e 193e b600 2136 39a7
    0x0000800: 0024 3a3f 1203 193f b800 04a7 0018 3a3f
    0x0000810: 193f 01b8 0006 a700 0d3a 3f19 3f13 0192
    0x0000820: b800 0915 3936 3f15 3f36 4015 409a 0011
    0x0000830: 1303 5f13 0360 b800 1c12 0bb8 000c a700
    0x0000840: 243a 3f12 0319 3fb8 0004 a700 183a 3f19
    0x0000850: 3f01 b800 06a7 000d 3a3f 193f 1303 61b8
    0x0000860: 0009 1539 9900 0815 3999 0003 193a 153b
    0x0000870: 153c b801 963a 3d2d c700 03a7 0024 3a3f
    0x0000880: 1230 193f b800 04a7 0018 3a3f 193f 01b8
    0x0000890: 0006 a700 0d3a 3f19 3f13 0361 b800 0915
    0x00008a0: 3999 0033 193d c600 0704 a700 0403 363f
    0x00008b0: a700 243a 3f12 3119 3fb8 0004 a700 183a
    0x00008c0: 3f19 3f01 b800 06a7 000d 3a3f 193f 1301
    0x00008d0: 92b8 0009 a700 243a 3f12 3219 3fb8 0004
    0x00008e0: a700 183a 3f19 3f01 b800 06a7 000d 3a3f
    0x00008f0: 193f 1301 92b8 0009 a700 103a 3f19 3f4e
    0x0000900: 1184 2a36 0419 3fbf 193d c600 0704 a700
    0x0000910: 0403 363e 153e 9a00 0b13 0362 1212 b800
    0x0000920: 0c19 3d3a 3f19 3fb4 019d 191e b403 63a2
    0x0000930: 0007 04a7 0004 0336 4015 4099 005b 0315
    0x0000940: 34a2 0011 0304 a200 0c15 3412 5104 64a3
    0x0000950: 0007 04a7 0004 0336 4115 419a 000b 1303
    0x0000960: 6412 53b8 000c 1534 9c00 1004 9c00 0c12
    0x0000970: 5404 6415 34a3 0007 04a7 0004 0336 4215
    0x0000980: 429a 000b 1303 6412 53b8 000c 1534 0460
    0x0000990: 3643 1543 3634 1535 0460 3635 a7fe 1603
    0x00009a0: 3635 013a 3604 3635 a700 233a 3712 0319
    0x00009b0: 37b8 0004 a700 173a 3719 3701 b800 06a7
    0x00009c0: 000c 3a37 1937 1208 b800 0915 3536 3715
    0x00009d0: 3736 3815 389a 0011 1303 6513 0366 b800
    0x00009e0: 1c12 0bb8 000c a700 243a 3712 0319 37b8
    0x00009f0: 0004 a700 183a 3719 3701 b800 06a7 000d
    0x0000a00: 3a37 1937 1303 67b8 0009 1535 9900 0815
    0x0000a10: 3599 0003 bb03 6859 b703 693a 36a7 0010
    0x0000a20: 3a37 1937 4e11 8254 3604 1937 bf19 36c6
    0x0000a30: 0007 04a7 0004 0336 3715 379a 000b 1303
    0x0000a40: 6a12 12b8 000c 1936 3a38 1938 191e b403
    0x0000a50: 4db5 036b 1938 b403 6b36 3919 3819 1eb4
    0x0000a60: 034e b503 6c19 38b4 036c 363a 1938 191e
    0x0000a70: b403 63b5 036d 1938 b403 6d36 3b19 3815
    0x0000a80: 34b5 036e 1938 b403 6e36 3c19 383a 0511
    0x0000a90: 7ec3 3604 014e 1905 3a3d 2dc7 008d b200
    0x0000aa0: 14c6 0007 04a7 0004 0336 3e15 3e36 3f15
    0x0000ab0: 3f9a 000a 1215 1216 b800 0c2a b400 13c6
    0x0000ac0: 0007 04a7 0004 0336 4015 4036 4115 419a
    0x0000ad0: 000a 1217 1216 b800 0c15 0699 0026 1905
    0x0000ae0: c600 0704 a700 0403 3642 1542 3643 1543
    0x0000af0: 9a00 1113 036f 1303 70b8 001c 12ce b800
    0x0000b00: 0ca7 0085 3a3e 1218 193e b800 04a7 0079
    0x0000b10: 3a3e 193e 01b8 0006 a700 6e3a 3e19 3e13
    0x0000b20: 01a7 b800 09a7 0061 2dc1 0010 9900 0f15
    0x0000b30: 0699 000a 2dc1 0002 9900 0704 a700 0403
    0x0000b40: 363e 153e 9a00 1e13 0371 2db8 001b b800
    0x0000b50: 1c13 0372 b800 1c13 0370 b800 1c12 1fb8
    0x0000b60: 000c a700 243a 3e12 d119 3eb8 0004 a700
    0x0000b70: 183a 3e19 3e01 b800 06a7 000d 3a3e 193e
    0x0000b80: 1301 a7b8 0009 193d b03a 1a03 3604 014e
    0x0000b90: 0336 1b03 361c 0336 1d19 1a3a 1e01 3a1f
    0x0000ba0: 0436 1ca7 0023 3a20 1203 1920 b800 04a7
    0x0000bb0: 0017 3a20 1920 01b8 0006 a700 0c3a 2019
    0x0000bc0: 2012 08b8 0009 0436 1da7 0023 3a20 1203
    0x0000bd0: 1920 b800 04a7 0017 3a20 1920 01b8 0006
    0x0000be0: a700 0c3a 2019 2012 08b8 0009 151c 9a00
    0x0000bf0: 0815 1d99 0007 04a7 0004 0336 2015 2036
    0x0000c00: 2115 219a 0011 1303 7413 0375 b800 1c12
    0x0000c10: 0bb8 000c a700 243a 2012 0319 20b8 0004
    0x0000c20: a700 183a 2019 2001 b800 06a7 000d 3a20
    0x0000c30: 1920 1303 76b8 0009 191e b600 d63a 1f2d
    0x0000c40: c700 03a7 0024 3a20 1230 1920 b800 04a7
    0x0000c50: 0018 3a20 1920 01b8 0006 a700 0d3a 2019
    0x0000c60: 2013 0376 b800 0915 1c99 0032 191f c600
    0x0000c70: 0704 a700 0403 3620 a700 233a 2012 3119
    0x0000c80: 20b8 0004 a700 173a 2019 2001 b800 06a7
    0x0000c90: 000c 3a20 1920 12d7 b800 09a7 0023 3a20
    0x0000ca0: 1232 1920 b800 04a7 0017 3a20 1920 01b8
    0x0000cb0: 0006 a700 0c3a 2019 2012 d7b8 0009 151d
    0x0000cc0: 9900 3219 1fc6 0007 04a7 0004 0336 20a7
    0x0000cd0: 0023 3a20 1231 1920 b800 04a7 0017 3a20
    0x0000ce0: 1920 01b8 0006 a700 0c3a 2019 2012 d8b8
    0x0000cf0: 0009 a700 233a 2012 3219 20b8 0004 a700
    0x0000d00: 173a 2019 2001 b800 06a7 000c 3a20 1920
    0x0000d10: 12d8 b800 09a7 0010 3a20 1920 4e11 80f2
    0x0000d20: 3604 1920 bf2b 3a20 03b8 0020 3a21 03b8
    0x0000d30: 0020 3a22 03b8 0020 3a23 191f c600 0704
    0x0000d40: a700 0403 3624 1524 b800 203a 2119 21b6
    0x0000d50: 0021 9900 1619 20c6 0007 04a7 0004 0336
    0x0000d60: 2415 24b8 0020 3a22 1922 b600 2199 0017
    0x0000d70: 1302 70c6 0007 04a7 0004 0336 2415 24b8
    0x0000d80: 0020 3a23 1923 b600 2136 1ba7 0024 3a24
    0x0000d90: 1203 1924 b800 04a7 0018 3a24 1924 01b8
    0x0000da0: 0006 a700 0d3a 2419 2413 0271 b800 0915
    0x0000db0: 1b36 2415 2436 2515 259a 0011 1303 7713
    0x0000dc0: 0378 b800 1c12 0bb8 000c a700 243a 2412
    0x0000dd0: 0319 24b8 0004 a700 183a 2419 2401 b800
    0x0000de0: 06a7 000d 3a24 1924 1303 76b8 0009 151b
    0x0000df0: 9900 0815 1b99 0003 191f 1920 1302 70b8
    0x0000e00: 0274 a700 103a 2419 244e 1180 ff36 0419
    0x0000e10: 24bf 01c0 0368 3a05 117f 3f36 0401 4e19
    0x0000e20: 053a 1a2d c700 8db2 0014 c600 0704 a700
    0x0000e30: 0403 361b 151b 361c 151c 9a00 0a12 1512
    0x0000e40: 16b8 000c 2ab4 0013 c600 0704 a700 0403
    0x0000e50: 361d 151d 361e 151e 9a00 0a12 1712 16b8
    0x0000e60: 000c 1506 9900 2619 05c6 0007 04a7 0004
    0x0000e70: 0336 1f15 1f36 2015 209a 0011 1303 6f13
    0x0000e80: 0370 b800 1c12 ceb8 000c a700 853a 1b12
    0x0000e90: 1819 1bb8 0004 a700 793a 1b19 1b01 b800
    0x0000ea0: 06a7 006e 3a1b 191b 1301 a7b8 0009 a700
    0x0000eb0: 612d c100 1099 000f 1506 9900 0a2d c100
    0x0000ec0: 0299 0007 04a7 0004 0336 1b15 1b9a 001e
    0x0000ed0: 1303 712d b800 1bb8 001c 1303 72b8 001c
    0x0000ee0: 1303 70b8 001c 121f b800 0ca7 0024 3a1b
    0x0000ef0: 12d1 191b b800 04a7 0018 3a1b 191b 01b8
    0x0000f00: 0006 a700 0d3a 1b19 1b13 01a7 b800 0919
    0x0000f10: 1ab0 3a17 1917 4e19 17bf 3a44 2dc7 008d
    0x0000f20: b200 14c6 0007 04a7 0004 0336 4515 4536
    0x0000f30: 4615 469a 000a 1215 1216 b800 0c2a b400
    0x0000f40: 13c6 0007 04a7 0004 0336 4715 4736 4815
    0x0000f50: 489a 000a 1217 1216 b800 0c15 0699 0026
    0x0000f60: 1905 c600 0704 a700 0403 3649 1549 364a
    0x0000f70: 154a 9a00 1113 036f 1303 70b8 001c 12ce
    0x0000f80: b800 0ca7 0085 3a45 1218 1945 b800 04a7
    0x0000f90: 0079 3a45 1945 01b8 0006 a700 6e3a 4519
    0x0000fa0: 4513 01a7 b800 09a7 0061 2dc1 0010 9900
    0x0000fb0: 0f15 0699 000a 2dc1 0002 9900 0704 a700
    0x0000fc0: 0403 3645 1545 9a00 1e13 0371 2db8 001b
    0x0000fd0: b800 1c13 0372 b800 1c13 0370 b800 1c12
    0x0000fe0: 1fb8 000c a700 243a 4512 d119 45b8 0004
    0x0000ff0: a700 183a 4519 4501 b800 06a7 000d 3a45
    0x0001000: 1945 1301 a7b8 0009 1944 bf            
  Exception Handler Table:
    bci [11, 74] => handler: 77
    bci [89, 92] => handler: 95
    bci [89, 92] => handler: 100
    bci [89, 92] => handler: 111
    bci [124, 127] => handler: 130
    bci [124, 127] => handler: 135
    bci [124, 127] => handler: 146
    bci [159, 162] => handler: 165
    bci [159, 162] => handler: 170
    bci [159, 162] => handler: 181
    bci [194, 197] => handler: 200
    bci [194, 197] => handler: 205
    bci [194, 197] => handler: 216
    bci [229, 232] => handler: 235
    bci [229, 232] => handler: 240
    bci [229, 232] => handler: 251
    bci [264, 267] => handler: 270
    bci [264, 267] => handler: 275
    bci [264, 267] => handler: 286
    bci [299, 302] => handler: 305
    bci [299, 302] => handler: 310
    bci [299, 302] => handler: 321
    bci [334, 337] => handler: 340
    bci [334, 337] => handler: 345
    bci [334, 337] => handler: 356
    bci [369, 372] => handler: 375
    bci [369, 372] => handler: 380
    bci [369, 372] => handler: 391
    bci [404, 407] => handler: 410
    bci [404, 407] => handler: 415
    bci [404, 407] => handler: 426
    bci [439, 442] => handler: 445
    bci [439, 442] => handler: 450
    bci [439, 442] => handler: 461
    bci [474, 477] => handler: 480
    bci [474, 477] => handler: 485
    bci [474, 477] => handler: 496
    bci [509, 512] => handler: 515
    bci [509, 512] => handler: 520
    bci [509, 512] => handler: 531
    bci [544, 547] => handler: 550
    bci [544, 547] => handler: 555
    bci [544, 547] => handler: 566
    bci [579, 582] => handler: 585
    bci [579, 582] => handler: 590
    bci [579, 582] => handler: 601
    bci [614, 617] => handler: 620
    bci [614, 617] => handler: 625
    bci [614, 617] => handler: 636
    bci [676, 679] => handler: 682
    bci [676, 679] => handler: 694
    bci [676, 679] => handler: 705
    bci [714, 735] => handler: 738
    bci [714, 735] => handler: 750
    bci [714, 735] => handler: 761
    bci [781, 788] => handler: 791
    bci [819, 845] => handler: 848
    bci [819, 845] => handler: 860
    bci [819, 845] => handler: 871
    bci [881, 908] => handler: 911
    bci [881, 908] => handler: 923
    bci [881, 908] => handler: 934
    bci [961, 965] => handler: 968
    bci [961, 965] => handler: 980
    bci [961, 965] => handler: 991
    bci [1006, 1018] => handler: 1021
    bci [1006, 1018] => handler: 1033
    bci [1006, 1018] => handler: 1044
    bci [1001, 1054] => handler: 1057
    bci [1001, 1054] => handler: 1069
    bci [1001, 1054] => handler: 1080
    bci [954, 1090] => handler: 1093
    bci [1164, 1190] => handler: 1193
    bci [1164, 1190] => handler: 1205
    bci [1164, 1190] => handler: 1216
    bci [1225, 1252] => handler: 1255
    bci [1225, 1252] => handler: 1267
    bci [1225, 1252] => handler: 1278
    bci [1309, 1313] => handler: 1316
    bci [1309, 1313] => handler: 1328
    bci [1309, 1313] => handler: 1339
    bci [1354, 1366] => handler: 1369
    bci [1354, 1366] => handler: 1381
    bci [1354, 1366] => handler: 1392
    bci [1349, 1401] => handler: 1404
    bci [1349, 1401] => handler: 1416
    bci [1349, 1401] => handler: 1427
    bci [1298, 1436] => handler: 1439
    bci [1633, 1659] => handler: 1662
    bci [1633, 1659] => handler: 1674
    bci [1633, 1659] => handler: 1685
    bci [1695, 1722] => handler: 1725
    bci [1695, 1722] => handler: 1737
    bci [1695, 1722] => handler: 1748
    bci [1783, 1787] => handler: 1790
    bci [1783, 1787] => handler: 1802
    bci [1783, 1787] => handler: 1813
    bci [1828, 1840] => handler: 1843
    bci [1828, 1840] => handler: 1855
    bci [1828, 1840] => handler: 1866
    bci [1823, 1876] => handler: 1879
    bci [1823, 1876] => handler: 1891
    bci [1823, 1876] => handler: 1902
    bci [1768, 1912] => handler: 1915
    bci [2021, 2047] => handler: 2050
    bci [2021, 2047] => handler: 2062
    bci [2021, 2047] => handler: 2073
    bci [2083, 2110] => handler: 2113
    bci [2083, 2110] => handler: 2125
    bci [2083, 2110] => handler: 2136
    bci [2167, 2171] => handler: 2174
    bci [2167, 2171] => handler: 2186
    bci [2167, 2171] => handler: 2197
    bci [2212, 2224] => handler: 2227
    bci [2212, 2224] => handler: 2239
    bci [2212, 2224] => handler: 2250
    bci [2207, 2260] => handler: 2263
    bci [2207, 2260] => handler: 2275
    bci [2207, 2260] => handler: 2286
    bci [2156, 2296] => handler: 2299
    bci [2469, 2472] => handler: 2475
    bci [2469, 2472] => handler: 2487
    bci [2469, 2472] => handler: 2498
    bci [2507, 2534] => handler: 2537
    bci [2507, 2534] => handler: 2549
    bci [2507, 2534] => handler: 2560
    bci [2580, 2589] => handler: 2592
    bci [2718, 2817] => handler: 2820
    bci [2718, 2817] => handler: 2832
    bci [2718, 2817] => handler: 2843
    bci [2856, 2914] => handler: 2917
    bci [2856, 2914] => handler: 2929
    bci [2856, 2914] => handler: 2940
    bci [804, 2714] => handler: 2953
    bci [2976, 2979] => handler: 2982
    bci [2976, 2979] => handler: 2994
    bci [2976, 2979] => handler: 3005
    bci [3014, 3017] => handler: 3020
    bci [3014, 3017] => handler: 3032
    bci [3014, 3017] => handler: 3043
    bci [3052, 3092] => handler: 3095
    bci [3052, 3092] => handler: 3107
    bci [3052, 3092] => handler: 3118
    bci [3135, 3139] => handler: 3142
    bci [3135, 3139] => handler: 3154
    bci [3135, 3139] => handler: 3165
    bci [3180, 3192] => handler: 3195
    bci [3180, 3192] => handler: 3207
    bci [3180, 3192] => handler: 3218
    bci [3175, 3227] => handler: 3230
    bci [3175, 3227] => handler: 3242
    bci [3175, 3227] => handler: 3253
    bci [3267, 3279] => handler: 3282
    bci [3267, 3279] => handler: 3294
    bci [3267, 3279] => handler: 3305
    bci [3262, 3314] => handler: 3317
    bci [3262, 3314] => handler: 3329
    bci [3262, 3314] => handler: 3340
    bci [3128, 3349] => handler: 3352
    bci [3386, 3467] => handler: 3470
    bci [3386, 3467] => handler: 3482
    bci [3386, 3467] => handler: 3493
    bci [3503, 3530] => handler: 3533
    bci [3503, 3530] => handler: 3545
    bci [3503, 3530] => handler: 3556
    bci [3576, 3586] => handler: 3589
    bci [3623, 3722] => handler: 3725
    bci [3623, 3722] => handler: 3737
    bci [3623, 3722] => handler: 3748
    bci [3761, 3819] => handler: 3822
    bci [3761, 3819] => handler: 3834
    bci [3761, 3819] => handler: 3845
    bci [646, 2714] => handler: 3858
    bci [2953, 3619] => handler: 3858
    bci [646, 2714] => handler: 3866
    bci [2953, 3619] => handler: 3866
    bci [3872, 3971] => handler: 3974
    bci [3872, 3971] => handler: 3986
    bci [3872, 3971] => handler: 3997
    bci [4010, 4068] => handler: 4071
    bci [4010, 4068] => handler: 4083
    bci [4010, 4068] => handler: 4094
    bci [3858, 3868] => handler: 3866
  Stackmap Table:
    full_frame(@25,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1612]},{})
    same_locals_1_stack_item_frame(@26,Integer)
    append_frame(@57,Object[#1612])
    same_locals_1_stack_item_frame(@58,Integer)
    same_frame(@67)
    full_frame(@77,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer},{Object[#1239]})
    same_frame(@86)
    full_frame(@95,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609]},{Object[#210]})
    same_locals_1_stack_item_frame(@100,Object[#1240])
    same_locals_1_stack_item_frame(@111,Object[#1241])
    same_frame(@121)
    full_frame(@130,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610]},{Object[#210]})
    same_locals_1_stack_item_frame(@135,Object[#1240])
    same_locals_1_stack_item_frame(@146,Object[#1241])
    same_frame(@156)
    full_frame(@165,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609]},{Object[#210]})
    same_locals_1_stack_item_frame(@170,Object[#1240])
    same_locals_1_stack_item_frame(@181,Object[#1241])
    same_frame(@191)
    full_frame(@200,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610]},{Object[#210]})
    same_locals_1_stack_item_frame(@205,Object[#1240])
    same_locals_1_stack_item_frame(@216,Object[#1241])
    same_frame(@226)
    full_frame(@235,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609]},{Object[#210]})
    same_locals_1_stack_item_frame(@240,Object[#1240])
    same_locals_1_stack_item_frame(@251,Object[#1241])
    same_frame(@261)
    full_frame(@270,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610]},{Object[#210]})
    same_locals_1_stack_item_frame(@275,Object[#1240])
    same_locals_1_stack_item_frame(@286,Object[#1241])
    same_frame(@296)
    full_frame(@305,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609]},{Object[#210]})
    same_locals_1_stack_item_frame(@310,Object[#1240])
    same_locals_1_stack_item_frame(@321,Object[#1241])
    same_frame(@331)
    full_frame(@340,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610]},{Object[#210]})
    same_locals_1_stack_item_frame(@345,Object[#1240])
    same_locals_1_stack_item_frame(@356,Object[#1241])
    same_frame(@366)
    full_frame(@375,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609]},{Object[#210]})
    same_locals_1_stack_item_frame(@380,Object[#1240])
    same_locals_1_stack_item_frame(@391,Object[#1241])
    same_frame(@401)
    full_frame(@410,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610]},{Object[#210]})
    same_locals_1_stack_item_frame(@415,Object[#1240])
    same_locals_1_stack_item_frame(@426,Object[#1241])
    same_frame(@436)
    full_frame(@445,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609]},{Object[#210]})
    same_locals_1_stack_item_frame(@450,Object[#1240])
    same_locals_1_stack_item_frame(@461,Object[#1241])
    same_frame(@471)
    full_frame(@480,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610]},{Object[#210]})
    same_locals_1_stack_item_frame(@485,Object[#1240])
    same_locals_1_stack_item_frame(@496,Object[#1241])
    same_frame(@506)
    full_frame(@515,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609]},{Object[#210]})
    same_locals_1_stack_item_frame(@520,Object[#1240])
    same_locals_1_stack_item_frame(@531,Object[#1241])
    same_frame(@541)
    full_frame(@550,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610]},{Object[#210]})
    same_locals_1_stack_item_frame(@555,Object[#1240])
    same_locals_1_stack_item_frame(@566,Object[#1241])
    same_frame(@576)
    full_frame(@585,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609]},{Object[#210]})
    same_locals_1_stack_item_frame(@590,Object[#1240])
    same_locals_1_stack_item_frame(@601,Object[#1241])
    same_frame(@611)
    full_frame(@620,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610]},{Object[#210]})
    same_locals_1_stack_item_frame(@625,Object[#1240])
    same_locals_1_stack_item_frame(@636,Object[#1241])
    same_frame(@646)
    full_frame(@682,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613]},{Object[#1239]})
    same_locals_1_stack_item_frame(@694,Object[#1240])
    same_locals_1_stack_item_frame(@705,Object[#1241])
    same_frame(@714)
    same_frame(@735)
    same_locals_1_stack_item_frame(@738,Object[#1239])
    same_locals_1_stack_item_frame(@750,Object[#1240])
    same_locals_1_stack_item_frame(@761,Object[#1241])
    same_frame(@771)
    same_frame(@781)
    same_locals_1_stack_item_frame(@791,Object[#210])
    same_frame(@804)
    full_frame(@828,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Integer,Object[#1610],Object[#3006],Object[#1612]},{})
    same_locals_1_stack_item_frame(@829,Integer)
    same_locals_1_stack_item_frame(@848,Object[#1239])
    same_locals_1_stack_item_frame(@860,Object[#1240])
    same_locals_1_stack_item_frame(@871,Object[#1241])
    same_frame(@881)
    same_frame(@908)
    same_locals_1_stack_item_frame(@911,Object[#1239])
    same_locals_1_stack_item_frame(@923,Object[#1240])
    same_locals_1_stack_item_frame(@934,Object[#1241])
    same_frame(@944)
    same_frame(@954)
    same_frame(@965)
    same_locals_1_stack_item_frame(@968,Object[#1239])
    same_locals_1_stack_item_frame(@980,Object[#1240])
    same_locals_1_stack_item_frame(@991,Object[#1241])
    same_frame(@1001)
    same_frame(@1015)
    same_locals_1_stack_item_frame(@1016,Integer)
    same_locals_1_stack_item_frame(@1021,Object[#1239])
    same_locals_1_stack_item_frame(@1033,Object[#1240])
    same_locals_1_stack_item_frame(@1044,Object[#1241])
    same_frame(@1054)
    same_locals_1_stack_item_frame(@1057,Object[#1239])
    same_locals_1_stack_item_frame(@1069,Object[#1240])
    same_locals_1_stack_item_frame(@1080,Object[#1241])
    same_frame(@1090)
    same_locals_1_stack_item_frame(@1093,Object[#210])
    chop_frame(@1106,1)
    same_frame(@1115)
    same_locals_1_stack_item_frame(@1116,Integer)
    append_frame(@1131,Integer)
    full_frame(@1173,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Integer,Object[#1610],Object[#3006],Integer,Object[#3007],Integer,Object[#1609],Integer,Integer,Object[#2373],Object[#1612]},{})
    same_locals_1_stack_item_frame(@1174,Integer)
    same_locals_1_stack_item_frame(@1193,Object[#1239])
    same_locals_1_stack_item_frame(@1205,Object[#1240])
    same_locals_1_stack_item_frame(@1216,Object[#1241])
    same_frame(@1225)
    same_frame(@1252)
    same_locals_1_stack_item_frame(@1255,Object[#1239])
    same_locals_1_stack_item_frame(@1267,Object[#1240])
    same_locals_1_stack_item_frame(@1278,Object[#1241])
    same_frame(@1288)
    same_frame(@1298)
    same_frame(@1313)
    same_locals_1_stack_item_frame(@1316,Object[#1239])
    same_locals_1_stack_item_frame(@1328,Object[#1240])
    same_locals_1_stack_item_frame(@1339,Object[#1241])
    same_frame(@1349)
    same_frame(@1363)
    same_locals_1_stack_item_frame(@1364,Integer)
    same_locals_1_stack_item_frame(@1369,Object[#1239])
    same_locals_1_stack_item_frame(@1381,Object[#1240])
    same_locals_1_stack_item_frame(@1392,Object[#1241])
    same_frame(@1401)
    same_locals_1_stack_item_frame(@1404,Object[#1239])
    same_locals_1_stack_item_frame(@1416,Object[#1240])
    same_locals_1_stack_item_frame(@1427,Object[#1241])
    same_frame(@1436)
    same_locals_1_stack_item_frame(@1439,Object[#210])
    chop_frame(@1452,1)
    same_frame(@1461)
    same_locals_1_stack_item_frame(@1462,Integer)
    append_frame(@1477,Integer)
    append_frame(@1508,Object[#3008])
    same_frame(@1512)
    same_locals_1_stack_item_frame(@1513,Integer)
    append_frame(@1528,Integer)
    same_frame(@1555)
    same_frame(@1559)
    same_locals_1_stack_item_frame(@1560,Integer)
    append_frame(@1575,Integer)
    full_frame(@1642,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Integer,Object[#1610],Object[#3006],Integer,Object[#3007],Integer,Object[#1609],Integer,Integer,Object[#2373],Integer,Object[#3008],Integer,Integer,Integer,Integer,Integer,Integer,Object[#1609],Integer,Integer,Integer,Integer,Object[#1617],Object[#1612]},{})
    same_locals_1_stack_item_frame(@1643,Integer)
    same_locals_1_stack_item_frame(@1662,Object[#1239])
    same_locals_1_stack_item_frame(@1674,Object[#1240])
    same_locals_1_stack_item_frame(@1685,Object[#1241])
    same_frame(@1695)
    same_frame(@1722)
    same_locals_1_stack_item_frame(@1725,Object[#1239])
    same_locals_1_stack_item_frame(@1737,Object[#1240])
    same_locals_1_stack_item_frame(@1748,Object[#1241])
    same_frame(@1758)
    same_frame(@1768)
    same_frame(@1787)
    same_locals_1_stack_item_frame(@1790,Object[#1239])
    same_locals_1_stack_item_frame(@1802,Object[#1240])
    same_locals_1_stack_item_frame(@1813,Object[#1241])
    same_frame(@1823)
    same_frame(@1837)
    same_locals_1_stack_item_frame(@1838,Integer)
    same_locals_1_stack_item_frame(@1843,Object[#1239])
    same_locals_1_stack_item_frame(@1855,Object[#1240])
    same_locals_1_stack_item_frame(@1866,Object[#1241])
    same_frame(@1876)
    same_locals_1_stack_item_frame(@1879,Object[#1239])
    same_locals_1_stack_item_frame(@1891,Object[#1240])
    same_locals_1_stack_item_frame(@1902,Object[#1241])
    same_frame(@1912)
    same_locals_1_stack_item_frame(@1915,Object[#210])
    chop_frame(@1928,1)
    same_frame(@1937)
    same_locals_1_stack_item_frame(@1938,Integer)
    append_frame(@1953,Integer)
    full_frame(@1970,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Integer,Object[#1610],Object[#3006],Integer,Object[#3007],Integer,Object[#1609],Integer,Integer,Object[#2373],Integer,Object[#3008],Integer,Integer,Integer,Integer,Integer,Integer,Object[#1609],Integer,Integer,Integer,Integer,Object[#1617],Integer,Object[#3009],Integer,Integer,Object[#3010]},{})
    same_frame(@1981)
    full_frame(@2030,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Integer,Object[#1610],Object[#3006],Integer,Object[#3007],Integer,Object[#1609],Integer,Integer,Object[#2373],Integer,Object[#3008],Integer,Integer,Integer,Integer,Integer,Integer,Object[#1609],Integer,Integer,Integer,Integer,Object[#1617],Integer,Object[#3009],Integer,Integer,Object[#3010],Object[#3011],Object[#3011],Integer,Object[#1609],Integer,Integer,Object[#2388],Object[#1612]},{})
    same_locals_1_stack_item_frame(@2031,Integer)
    same_locals_1_stack_item_frame(@2050,Object[#1239])
    same_locals_1_stack_item_frame(@2062,Object[#1240])
    same_locals_1_stack_item_frame(@2073,Object[#1241])
    same_frame(@2083)
    same_frame(@2110)
    same_locals_1_stack_item_frame(@2113,Object[#1239])
    same_locals_1_stack_item_frame(@2125,Object[#1240])
    same_locals_1_stack_item_frame(@2136,Object[#1241])
    same_frame(@2146)
    same_frame(@2156)
    same_frame(@2171)
    same_locals_1_stack_item_frame(@2174,Object[#1239])
    same_locals_1_stack_item_frame(@2186,Object[#1240])
    same_locals_1_stack_item_frame(@2197,Object[#1241])
    same_frame(@2207)
    same_frame(@2221)
    same_locals_1_stack_item_frame(@2222,Integer)
    same_locals_1_stack_item_frame(@2227,Object[#1239])
    same_locals_1_stack_item_frame(@2239,Object[#1240])
    same_locals_1_stack_item_frame(@2250,Object[#1241])
    same_frame(@2260)
    same_locals_1_stack_item_frame(@2263,Object[#1239])
    same_locals_1_stack_item_frame(@2275,Object[#1240])
    same_locals_1_stack_item_frame(@2286,Object[#1241])
    same_frame(@2296)
    same_locals_1_stack_item_frame(@2299,Object[#210])
    chop_frame(@2312,1)
    same_frame(@2321)
    same_locals_1_stack_item_frame(@2322,Integer)
    append_frame(@2337,Integer)
    append_frame(@2358,Object[#3012])
    same_locals_1_stack_item_frame(@2359,Integer)
    append_frame(@2386,Integer)
    same_frame(@2390)
    same_locals_1_stack_item_frame(@2391,Integer)
    append_frame(@2406,Integer)
    same_frame(@2424)
    same_frame(@2428)
    same_locals_1_stack_item_frame(@2429,Integer)
    append_frame(@2444,Integer)
    full_frame(@2454,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Integer,Object[#1610],Object[#3006],Integer,Object[#3007],Integer,Object[#1609],Integer,Integer,Object[#2373],Integer,Object[#3008],Integer,Integer,Integer,Integer,Integer,Integer,Object[#1609],Integer,Integer,Integer,Integer,Object[#1617],Integer,Object[#3009],Integer,Integer,Object[#3010],Object[#3011],Object[#3011]},{})
    full_frame(@2463,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Integer,Object[#1610],Object[#3006],Integer,Object[#3007],Integer,Object[#1609],Integer,Integer,Object[#2373],Integer,Object[#3008],Integer,Integer,Integer,Integer,Integer,Integer,Object[#1609],Integer,Integer,Integer,Integer,Object[#1617],Integer,Object[#3009],Integer},{})
    full_frame(@2475,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Integer,Object[#1610],Object[#3006],Integer,Object[#3007],Integer,Object[#1609],Integer,Integer,Object[#2373],Integer,Object[#3008],Integer,Integer,Integer,Integer,Integer,Integer,Object[#1609],Integer,Integer,Integer,Integer,Object[#1617],Integer,Object[#3009],Integer,Integer,Object[#3005]},{Object[#1239]})
    same_locals_1_stack_item_frame(@2487,Object[#1240])
    same_locals_1_stack_item_frame(@2498,Object[#1241])
    same_frame(@2507)
    same_frame(@2534)
    same_locals_1_stack_item_frame(@2537,Object[#1239])
    same_locals_1_stack_item_frame(@2549,Object[#1240])
    same_locals_1_stack_item_frame(@2560,Object[#1241])
    same_frame(@2570)
    same_frame(@2580)
    same_locals_1_stack_item_frame(@2592,Object[#210])
    same_frame(@2605)
    same_frame(@2614)
    same_locals_1_stack_item_frame(@2615,Integer)
    append_frame(@2630,Integer)
    full_frame(@2728,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Integer,Object[#1610],Object[#3006],Integer,Object[#3007],Integer,Object[#1609],Integer,Integer,Object[#2373],Integer,Object[#3008],Integer,Integer,Integer,Integer,Integer,Integer,Object[#1609],Integer,Integer,Integer,Integer,Object[#1617],Integer,Object[#3009],Integer,Integer,Object[#3005],Integer,Object[#3013],Integer,Integer,Integer,Integer,Object[#3005]},{})
    same_locals_1_stack_item_frame(@2729,Integer)
    append_frame(@2747,Integer,Integer)
    same_frame(@2758)
    same_locals_1_stack_item_frame(@2759,Integer)
    append_frame(@2777,Integer,Integer)
    same_frame(@2791)
    same_locals_1_stack_item_frame(@2792,Integer)
    full_frame(@2817,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Integer,Object[#1610],Object[#3006],Integer,Object[#3007],Integer,Object[#1609],Integer,Integer,Object[#2373],Integer,Object[#3008],Integer,Integer,Integer,Integer,Integer,Integer,Object[#1609],Integer,Integer,Integer,Integer,Object[#1617],Integer,Object[#3009],Integer,Integer,Object[#3005],Integer,Object[#3013],Integer,Integer,Integer,Integer,Object[#3005]},{})
    same_locals_1_stack_item_frame(@2820,Object[#1239])
    same_locals_1_stack_item_frame(@2832,Object[#1240])
    same_locals_1_stack_item_frame(@2843,Object[#1241])
    same_frame(@2856)
    same_frame(@2875)
    same_frame(@2879)
    same_locals_1_stack_item_frame(@2880,Integer)
    same_frame(@2914)
    same_locals_1_stack_item_frame(@2917,Object[#1239])
    same_locals_1_stack_item_frame(@2929,Object[#1240])
    same_locals_1_stack_item_frame(@2940,Object[#1241])
    same_frame(@2950)
    full_frame(@2953,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613]},{Object[#883]})
    full_frame(@2982,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Object[#883],Integer,Integer,Integer,Object[#883],Object[#1610]},{Object[#1239]})
    same_locals_1_stack_item_frame(@2994,Object[#1240])
    same_locals_1_stack_item_frame(@3005,Object[#1241])
    same_frame(@3014)
    same_locals_1_stack_item_frame(@3020,Object[#1239])
    same_locals_1_stack_item_frame(@3032,Object[#1240])
    same_locals_1_stack_item_frame(@3043,Object[#1241])
    same_frame(@3052)
    same_frame(@3062)
    same_frame(@3066)
    same_locals_1_stack_item_frame(@3067,Integer)
    same_frame(@3092)
    same_locals_1_stack_item_frame(@3095,Object[#1239])
    same_locals_1_stack_item_frame(@3107,Object[#1240])
    same_locals_1_stack_item_frame(@3118,Object[#1241])
    same_frame(@3128)
    same_frame(@3139)
    same_locals_1_stack_item_frame(@3142,Object[#1239])
    same_locals_1_stack_item_frame(@3154,Object[#1240])
    same_locals_1_stack_item_frame(@3165,Object[#1241])
    same_frame(@3175)
    same_frame(@3189)
    same_locals_1_stack_item_frame(@3190,Integer)
    same_locals_1_stack_item_frame(@3195,Object[#1239])
    same_locals_1_stack_item_frame(@3207,Object[#1240])
    same_locals_1_stack_item_frame(@3218,Object[#1241])
    same_frame(@3227)
    same_locals_1_stack_item_frame(@3230,Object[#1239])
    same_locals_1_stack_item_frame(@3242,Object[#1240])
    same_locals_1_stack_item_frame(@3253,Object[#1241])
    same_frame(@3262)
    same_frame(@3276)
    same_locals_1_stack_item_frame(@3277,Integer)
    same_locals_1_stack_item_frame(@3282,Object[#1239])
    same_locals_1_stack_item_frame(@3294,Object[#1240])
    same_locals_1_stack_item_frame(@3305,Object[#1241])
    same_frame(@3314)
    same_locals_1_stack_item_frame(@3317,Object[#1239])
    same_locals_1_stack_item_frame(@3329,Object[#1240])
    same_locals_1_stack_item_frame(@3340,Object[#1241])
    same_frame(@3349)
    same_locals_1_stack_item_frame(@3352,Object[#210])
    same_frame(@3365)
    full_frame(@3395,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Object[#883],Integer,Integer,Integer,Object[#883],Object[#1610],Object[#1609],Object[#1612],Object[#1612],Object[#1612]},{})
    same_locals_1_stack_item_frame(@3396,Integer)
    same_frame(@3422)
    same_locals_1_stack_item_frame(@3423,Integer)
    same_frame(@3432)
    same_frame(@3450)
    same_locals_1_stack_item_frame(@3451,Integer)
    same_frame(@3460)
    same_locals_1_stack_item_frame(@3470,Object[#1239])
    same_locals_1_stack_item_frame(@3482,Object[#1240])
    same_locals_1_stack_item_frame(@3493,Object[#1241])
    same_frame(@3503)
    same_frame(@3530)
    same_locals_1_stack_item_frame(@3533,Object[#1239])
    same_locals_1_stack_item_frame(@3545,Object[#1240])
    same_locals_1_stack_item_frame(@3556,Object[#1241])
    same_frame(@3566)
    same_frame(@3576)
    same_locals_1_stack_item_frame(@3589,Object[#210])
    full_frame(@3602,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613]},{})
    append_frame(@3633,Object[#3005])
    same_locals_1_stack_item_frame(@3634,Integer)
    append_frame(@3652,Integer,Integer)
    same_frame(@3663)
    same_locals_1_stack_item_frame(@3664,Integer)
    append_frame(@3682,Integer,Integer)
    same_frame(@3696)
    same_locals_1_stack_item_frame(@3697,Integer)
    full_frame(@3722,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Integer,Object[#1610],Object[#1613],Object[#3005]},{})
    same_locals_1_stack_item_frame(@3725,Object[#1239])
    same_locals_1_stack_item_frame(@3737,Object[#1240])
    same_locals_1_stack_item_frame(@3748,Object[#1241])
    same_frame(@3761)
    same_frame(@3780)
    same_frame(@3784)
    same_locals_1_stack_item_frame(@3785,Integer)
    same_frame(@3819)
    same_locals_1_stack_item_frame(@3822,Object[#1239])
    same_locals_1_stack_item_frame(@3834,Object[#1240])
    same_locals_1_stack_item_frame(@3845,Object[#1241])
    same_frame(@3855)
    full_frame(@3858,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610]},{Object[#210]})
    same_locals_1_stack_item_frame(@3866,Object[#1630])
    full_frame(@3882,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#1630]},{})
    same_locals_1_stack_item_frame(@3883,Integer)
    append_frame(@3901,Integer,Integer)
    same_frame(@3912)
    same_locals_1_stack_item_frame(@3913,Integer)
    append_frame(@3931,Integer,Integer)
    same_frame(@3945)
    same_locals_1_stack_item_frame(@3946,Integer)
    full_frame(@3971,{Object[#1237],Object[#1609],Object[#1610],Object[#210],Integer,Object[#3005],Integer,Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Object[#1609],Object[#1610],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#1630]},{})
    same_locals_1_stack_item_frame(@3974,Object[#1239])
    same_locals_1_stack_item_frame(@3986,Object[#1240])
    same_locals_1_stack_item_frame(@3997,Object[#1241])
    same_frame(@4010)
    same_frame(@4029)
    same_frame(@4033)
    same_locals_1_stack_item_frame(@4034,Integer)
    same_frame(@4068)
    same_locals_1_stack_item_frame(@4071,Object[#1239])
    same_locals_1_stack_item_frame(@4083,Object[#1240])
    same_locals_1_stack_item_frame(@4094,Object[#1241])
    same_frame(@4104)

    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at org.hyperledger.fabric.contract.routing.impl.ContractDefinitionImpl.<init>(ContractDefinitionImpl.java:61)
    at org.hyperledger.fabric.contract.routing.impl.RoutingRegistryImpl.addNewContract(RoutingRegistryImpl.java:58)
    at org.hyperledger.fabric.contract.routing.impl.RoutingRegistryImpl.addContracts(RoutingRegistryImpl.java:212)
    at org.hyperledger.fabric.contract.routing.impl.RoutingRegistryImpl.findAndSetContracts(RoutingRegistryImpl.java:197)
    at org.hyperledger.fabric.contract.ContractRouter.findAllContracts(ContractRouter.java:88)
    at org.hyperledger.fabric.contract.ContractRouter.main(ContractRouter.java:160)
bzp99 commented 1 year ago

Running the chaincode with -noverify is a functioning workaround. @aklenik, do you think this is acceptable even in the long term?

aklenik commented 1 year ago

Since everyone will build the chaincode from the source, I'd say it's safe to turn it off. Probably OpenJML messes up the code "integrity" somehow, but we can consider it a trusted framework.

(It'd be nice to know why this happens though, if/when we have some extra free time. Hehe, I know :))

bzp99 commented 1 year ago

Thanks, agreed. Closing because of c3016ef