diff --git a/AllContractsHashes.json b/AllContractsHashes.json index 09b3e77a3e..6bccd53fbf 100644 --- a/AllContractsHashes.json +++ b/AllContractsHashes.json @@ -31,14 +31,6 @@ "evmBytecodePath": null, "evmDeployedBytecodeHash": null }, - { - "contractName": "system-contracts/ComplexUpgrader", - "zkBytecodeHash": "0x010000a9a9bfda590d60573b721f03ee492f6b7ced5bdd4d08eb368d03ce89a1", - "zkBytecodePath": "/system-contracts/zkout/ComplexUpgrader.sol/ComplexUpgrader.json", - "evmBytecodeHash": null, - "evmBytecodePath": null, - "evmDeployedBytecodeHash": null - }, { "contractName": "system-contracts/Compressor", "zkBytecodeHash": "0x01000139baf8beff9b794f13f4ee3511e539e469f60eb0bc93380b21fc0c6689", @@ -503,6 +495,22 @@ "evmBytecodePath": null, "evmDeployedBytecodeHash": null }, + { + "contractName": "l2-contracts/MockERC20", + "zkBytecodeHash": "0x010001c56a0186b742de5c13bc979f19e6cf41523e348e2fa8f21e527d5afe8a", + "zkBytecodePath": "/l2-contracts/zkout/MockERC20.sol/MockERC20.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/MockERC721", + "zkBytecodeHash": "0x010001dbc2d23d6c28e450d5014696ef79f7def0ef3358ac445d579bd7615e47", + "zkBytecodePath": "/l2-contracts/zkout/MockERC721.sol/MockERC721.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, { "contractName": "l2-contracts/Multicall3", "zkBytecodeHash": "0x010001f56cbdb72a6fe855c492168c55903d82df6a4613edc5ad01281df22862", @@ -559,14 +567,6 @@ "evmBytecodePath": null, "evmDeployedBytecodeHash": null }, - { - "contractName": "l2-contracts/StdConstants", - "zkBytecodeHash": "0x0100000764ec2385536d811fc53c62ff697671a3f7002dfd655a4c7e79d315ef", - "zkBytecodePath": "/l2-contracts/zkout/StdConstants.sol/StdConstants.json", - "evmBytecodeHash": null, - "evmBytecodePath": null, - "evmDeployedBytecodeHash": null - }, { "contractName": "l2-contracts/stdError", "zkBytecodeHash": "0x01000031d8221150561a8e6a1ac7cc028327fead2e55070bb8ddba5f875d082e", @@ -577,7 +577,7 @@ }, { "contractName": "l2-contracts/stdJson", - "zkBytecodeHash": "0x01000007755e4072008e37ea6696493c384d2d22b55eb100440375548b051353", + "zkBytecodeHash": "0x01000007fa196ceb9c95475ddfa84a2422056a389e05789de0be0978c46a35e0", "zkBytecodePath": "/l2-contracts/zkout/StdJson.sol/stdJson.json", "evmBytecodeHash": null, "evmBytecodePath": null, @@ -593,7 +593,7 @@ }, { "contractName": "l2-contracts/stdStorage", - "zkBytecodeHash": "0x0100000726c60b8b14909681e8e7280b54544cb15e937dd84e2b67da855e4dc1", + "zkBytecodeHash": "0x01000007d3b62d82a03340101fccb463a3b409df9495b8d8c38e96f7675ce21f", "zkBytecodePath": "/l2-contracts/zkout/StdStorage.sol/stdStorage.json", "evmBytecodeHash": null, "evmBytecodePath": null, @@ -601,7 +601,7 @@ }, { "contractName": "l2-contracts/stdStorageSafe", - "zkBytecodeHash": "0x01000007cae9453a69074253046f3027210ec97fc7350adc547011c6033d3964", + "zkBytecodeHash": "0x0100000741117ec47b18c4afdce3a27ea1ab8a5d8e6027554d747b3a9c857930", "zkBytecodePath": "/l2-contracts/zkout/StdStorage.sol/stdStorageSafe.json", "evmBytecodeHash": null, "evmBytecodePath": null, @@ -609,7 +609,7 @@ }, { "contractName": "l2-contracts/StdStyle", - "zkBytecodeHash": "0x0100000707858fdbddd5f7c71dc52b63119de9ec8b259a8cc7e779112e0dac81", + "zkBytecodeHash": "0x010000079184fb346aa290405ad6906ddaa9c8f67c29dcb8f28a7d79bf3b1e09", "zkBytecodePath": "/l2-contracts/zkout/StdStyle.sol/StdStyle.json", "evmBytecodeHash": null, "evmBytecodePath": null, @@ -617,7 +617,7 @@ }, { "contractName": "l2-contracts/stdToml", - "zkBytecodeHash": "0x01000007978ba12bb40ccb8875ba1a471f5e47d69a6e3304e5052450fed978b1", + "zkBytecodeHash": "0x010000077a71a29755a11a5727a83ec7cb70790232a0f323da8e579fea87a017", "zkBytecodePath": "/l2-contracts/zkout/StdToml.sol/stdToml.json", "evmBytecodeHash": null, "evmBytecodePath": null, @@ -721,7 +721,7 @@ }, { "contractName": "l2-contracts/console", - "zkBytecodeHash": "0x010000076b91d29ad4ffb9f0b13b4f09f636f97369e790d2154f1ac0d7872ebb", + "zkBytecodeHash": "0x01000007012c0bc77ba86bf742e43162df077be352a89e042bb1b5d832a28d25", "zkBytecodePath": "/l2-contracts/zkout/console.sol/console.json", "evmBytecodeHash": null, "evmBytecodePath": null, @@ -737,35 +737,35 @@ }, { "contractName": "l1-contracts/AccessControlRestriction", - "zkBytecodeHash": "0x010002954dfb5e7b6d8202bcb9730694ea17d6d258afe9e3368cd51d0a66682d", + "zkBytecodeHash": "0x010002958039f331aab2670aaf7b98fadc11782016668cd09524c6758641fd2b", "zkBytecodePath": "/l1-contracts/zkout/AccessControlRestriction.sol/AccessControlRestriction.json", - "evmBytecodeHash": "0x73a9cafcfa99f2e50f0177e0f301aab141a90b1e667068d3d246d8a1d2b219a9", + "evmBytecodeHash": "0x681c64df761ff1ec7bf06bbcda62101f217f23af1413659157caa2c3c2b8d1aa", "evmBytecodePath": "/l1-contracts/out/AccessControlRestriction.sol/AccessControlRestriction.json", - "evmDeployedBytecodeHash": "0xd8b6a2783d982091a9e30d345de5184a5dafc76abb41576599656431a15ce197" + "evmDeployedBytecodeHash": "0xff09fc7d09fce403b3d9e7e40167f52dc79ead6c3911cf933545f35050c7fefc" }, { "contractName": "l1-contracts/Address", "zkBytecodeHash": "0x01000007920a76c05c5b8a6eb413a4f61d7406617edbda6fa1e6fda77c58717a", "zkBytecodePath": "/l1-contracts/zkout/Address.sol/Address.json", - "evmBytecodeHash": "0x50642dd87abdb731d22b845d534a61bbe9c5145492fc6ac2ad5de86e1332cc71", + "evmBytecodeHash": "0x16fd8f075c1f5e450d71ad23f386523c0ed83aa9c235d4f88369d374d625ee30", "evmBytecodePath": "/l1-contracts/out/Address.sol/Address.json", - "evmDeployedBytecodeHash": "0x816f1255a594513f2ebe09ca6f43588b0c34892a1e6e5c235b55e5fa28487816" + "evmDeployedBytecodeHash": "0x020feef0996560672eb60122b7f62d256e5336f1c2caa5f604fbf3bd106ca49e" }, { "contractName": "l1-contracts/AddressAliasHelper", "zkBytecodeHash": "0x010000078fadbc6298ac00b9ee69ced598d5c9454899747ac6f08a29b86110f9", "zkBytecodePath": "/l1-contracts/zkout/AddressAliasHelper.sol/AddressAliasHelper.json", - "evmBytecodeHash": "0xc746891e19890ce2a4eec783c469f396838acd66d88642095d2ef3f0401cee99", + "evmBytecodeHash": "0x0374566d9ba55a74e44c0a0725b80d4c4e9ccd00a1a46dece60014eef5f1d246", "evmBytecodePath": "/l1-contracts/out/AddressAliasHelper.sol/AddressAliasHelper.json", - "evmDeployedBytecodeHash": "0x29bafdde6756da17a3b05174ea233f68abd1849ea534f99c4ab27a2966d29d07" + "evmDeployedBytecodeHash": "0x24f914d0b7ac97000c591e703d917323664a7bc178dcc2d80ba273fecbe35af3" }, { "contractName": "l1-contracts/AddressUpgradeable", "zkBytecodeHash": "0x01000007dd0acb212a28acc95b5ec6fe781397ecee8013ec1953673209b7cd2b", "zkBytecodePath": "/l1-contracts/zkout/AddressUpgradeable.sol/AddressUpgradeable.json", - "evmBytecodeHash": "0x9bf8386f143fc1f2f2d174737097e0256fef2b126feebe6f04e06300e8d0a817", + "evmBytecodeHash": "0xbffda6b9afd8115c930a22353bbf7136683639f2a4b22dc106f967568ee67627", "evmBytecodePath": "/l1-contracts/out/AddressUpgradeable.sol/AddressUpgradeable.json", - "evmDeployedBytecodeHash": "0x9fc2a478f1de0921735a2cf334e9665a96195bcddf21221b31c5ac87d9ba76a7" + "evmDeployedBytecodeHash": "0xb1091c98071a34713c3fc360d0ade38c6fcbf53f56d35412b24da82263d824fe" }, { "contractName": "l1-contracts/AdminFacet", @@ -779,9 +779,9 @@ "contractName": "l1-contracts/Arrays", "zkBytecodeHash": "0x01000007ec54bcf91f8c27aa52160019edf07d15a0873f8757f565fbe77be64f", "zkBytecodePath": "/l1-contracts/zkout/Arrays.sol/Arrays.json", - "evmBytecodeHash": "0x8cdf407dac3e3d354b380a5cd910a01622b4ef0f812ab438bf1b6c583212698e", + "evmBytecodeHash": "0x2a0815a9d444b067458afd961462718638f96879e13caa77d5b7c5add880f7b7", "evmBytecodePath": "/l1-contracts/out/Arrays.sol/Arrays.json", - "evmDeployedBytecodeHash": "0x7080ea75be8c190a0727ac4695d2b3cdb77a6ddd9fe1eb16a094ce0f918f4167" + "evmDeployedBytecodeHash": "0xfdecb6ab7e7a3b1bf67f5cf8e65fe130c86adf9afec776dfd967ab638a6d13e3" }, { "contractName": "l1-contracts/BatchDecoder", @@ -795,23 +795,23 @@ "contractName": "l1-contracts/BeaconProxy", "zkBytecodeHash": "0x010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411", "zkBytecodePath": "/l1-contracts/zkout/BeaconProxy.sol/BeaconProxy.json", - "evmBytecodeHash": "0x70fe6fb533ade74d2bf2cd6ba8e7a10c9bf9831c65b6d01ac968ada913ca5e88", + "evmBytecodeHash": "0x9cb5d9bbf6cc4352872abd3899b7096ef1a5114447b1099cbfc8e2c9d30e4c65", "evmBytecodePath": "/l1-contracts/out/BeaconProxy.sol/BeaconProxy.json", - "evmDeployedBytecodeHash": "0xd98972a966e6a38b007ca6c285511cbeb70fbebd6a4dbab9b0ba94c29a60392a" + "evmDeployedBytecodeHash": "0x42d7ab85765a29e9bcb76f7a073461c1e4e624eabcac8a03a6a0faa0657eb363" }, { "contractName": "l1-contracts/BridgeHelper", - "zkBytecodeHash": "0x0100000749feca609d10d897d325305bca8bb57b1ea0211d56ed0baa488a495e", + "zkBytecodeHash": "0x01000007889f0b75538c022b4da4e4439bff6b559342160151e2d2995b5e4b8f", "zkBytecodePath": "/l1-contracts/zkout/BridgeHelper.sol/BridgeHelper.json", - "evmBytecodeHash": "0x56217a5771bb03a62f7e565b5a7c1c8eed503876360fa0fdca546c0b396b8965", + "evmBytecodeHash": "0xdbab08c86f2376d93c8cdb767190ddc80ef2940d4a62ec85918e9257e448db47", "evmBytecodePath": "/l1-contracts/out/BridgeHelper.sol/BridgeHelper.json", - "evmDeployedBytecodeHash": "0x1e2650d7fffe502e0cfaca53a231e2f6431ed31633a469ae7c3e23fc0b4d2b55" + "evmDeployedBytecodeHash": "0x9ca578c4e035cee2dfa10c5d00e1f32a8e1afe6696ec89e8c10a7bb685092c38" }, { "contractName": "l1-contracts/BridgedStandardERC20", - "zkBytecodeHash": "0x010004ed850c2062ea78b93325fb4dd654ed27de35423a7d44b3978b47f1aa89", + "zkBytecodeHash": "0x010004ed03f64689ab698ac7111d16989e2119445a5ef8f707adcc945f4b3ecf", "zkBytecodePath": "/l1-contracts/zkout/BridgedStandardERC20.sol/BridgedStandardERC20.json", - "evmBytecodeHash": "0xe2665fdf6ef129ed4270abefd20cc967468f0b594334cdb8acd56bc3d71780ea", + "evmBytecodeHash": "0x4e0687b96ad299d9ee17c58c23a30a96dfb6d0c05b06e17cbace18b1fbd2628b", "evmBytecodePath": "/l1-contracts/out/BridgedStandardERC20.sol/BridgedStandardERC20.json", "evmDeployedBytecodeHash": "0xd819c028797ec0f4e10e2f8ed2a6c3aa692d7430322f4414aae552c7872bf94d" }, @@ -825,11 +825,11 @@ }, { "contractName": "l1-contracts/BytecodesSupplier", - "zkBytecodeHash": "0x010000bfe2e4cdf8bb5a3e44efa481c55005034b2b4339d07e0aa3537fe6ff2d", + "zkBytecodeHash": "0x010000bf9c7e362d2c217a2ee805519d57c321630c68819f7b40bae0fd0dde3b", "zkBytecodePath": "/l1-contracts/zkout/BytecodesSupplier.sol/BytecodesSupplier.json", - "evmBytecodeHash": "0xf14893a1eb900825a254be603396e3b7cbb905ecde2c59efc97a35c37fb43806", + "evmBytecodeHash": "0xf373f734d9c523a2520e1895a8fd91e1baea49fc12766494f904015a7a3fbc8b", "evmBytecodePath": "/l1-contracts/out/BytecodesSupplier.sol/BytecodesSupplier.json", - "evmDeployedBytecodeHash": "0x16843127f45fdfca670eecd19c9ec8823554599e2b43d1c8d4d0178ac63a6d27" + "evmDeployedBytecodeHash": "0xe50942db73dcb46129a2b4dc12df32a87f725e8d0617e2b67c1149fccaed99c0" }, { "contractName": "l1-contracts/CTMDeploymentTracker", @@ -841,11 +841,11 @@ }, { "contractName": "l1-contracts/ChainAdmin", - "zkBytecodeHash": "0x0100019b4076cebc6397174d0778e0b69a413500f132ad559fe14c31b66e8a76", + "zkBytecodeHash": "0x0100019bfb54a8f5181cea1b2a530a06307246547c510998ed1ab52c388ce802", "zkBytecodePath": "/l1-contracts/zkout/ChainAdmin.sol/ChainAdmin.json", - "evmBytecodeHash": "0x97edf926749a2210dbc7a59f3798894973f34ab94f13fb894807f301bc4879fa", + "evmBytecodeHash": "0xfd30269aeea85bfb9b747b0848eb745ef15e4ec3b09d04a08ef6553bafa646b5", "evmBytecodePath": "/l1-contracts/out/ChainAdmin.sol/ChainAdmin.json", - "evmDeployedBytecodeHash": "0xf3a2c3efbf8d8be929140dacf6820b60b6c60f1bc036baa68089876ef22c546e" + "evmDeployedBytecodeHash": "0x32b2523abe7d865e14042fcc1aa926da64ca77fb7c270b899f1ee027f41f667e" }, { "contractName": "l1-contracts/ChainAdminOwnable", @@ -883,25 +883,25 @@ "contractName": "l1-contracts/CountersUpgradeable", "zkBytecodeHash": "0x010000076df32a9bc96f42e9f3855c4229b8786a032635908de44c9ceb7bbe91", "zkBytecodePath": "/l1-contracts/zkout/CountersUpgradeable.sol/CountersUpgradeable.json", - "evmBytecodeHash": "0x2db8e6cd3078849ce3926a8eb9841fb5fd9d5ffe7d1d832cd84b8c7ae267c7e9", + "evmBytecodeHash": "0x129e011361d753d60570e9c6ddc2ea6bb3ff1acb2b0cfed0532df280f7688bd8", "evmBytecodePath": "/l1-contracts/out/CountersUpgradeable.sol/CountersUpgradeable.json", - "evmDeployedBytecodeHash": "0x5554cc69a5d787990518c0dfb3eb3aeb5fda0ac7d25d756bfa6faa3644fb7ecc" + "evmDeployedBytecodeHash": "0x3bc09f84e8e9d12ea39b56fb2336449450b22ad4df44d4c7d14644773b8899ca" }, { "contractName": "l1-contracts/Create2", "zkBytecodeHash": "0x01000007f2c54e57fe601024b571320f761a2811d849b0dfd82f4a43ac289a0d", "zkBytecodePath": "/l1-contracts/zkout/Create2.sol/Create2.json", - "evmBytecodeHash": "0xbf8297a1cb4ff4fc6dcd199d8a66b32f7b21b9e9a18d6d635d4e71e0d54fcc63", + "evmBytecodeHash": "0x7d3583ddc3f2043a9d515132635871d92b07246215be3dc6ac3d3f3b84f4cd95", "evmBytecodePath": "/l1-contracts/out/Create2.sol/Create2.json", - "evmDeployedBytecodeHash": "0xed794d8d33062a4df19b10cb44c2eb16b1c89bf1227becbef7622365b9d6d1e5" + "evmDeployedBytecodeHash": "0xf09646183a2adfa4d150ee92a830371f900458a6922e3959343bb095bf96a382" }, { "contractName": "l1-contracts/DataEncoding", - "zkBytecodeHash": "0x01000007503de9850b46e3d924d669b6b69154e1271147386c2623363392381a", + "zkBytecodeHash": "0x01000007fd6abcaffafb9cd3c01c56b9d676410ea9c509cb18c23156f7acfa53", "zkBytecodePath": "/l1-contracts/zkout/DataEncoding.sol/DataEncoding.json", - "evmBytecodeHash": "0x1e0c5e94b3015caf4b0ff6c1cdb6d91e05d60ea6c9764e249a5381cca25193ae", + "evmBytecodeHash": "0xae4713e7f0d7993acc68d8e795012c50846b201661bccae2dc4cb86b8226d154", "evmBytecodePath": "/l1-contracts/out/DataEncoding.sol/DataEncoding.json", - "evmDeployedBytecodeHash": "0xb699fdb040231945c383327b9cea1a7f74f8f5879452fdf53facb91def0d8621" + "evmDeployedBytecodeHash": "0x86fb9c160363608a641b5eeca2069c61efe9c5e66aa4ee660062009f19e924aa" }, { "contractName": "l1-contracts/DefaultUpgrade", @@ -913,11 +913,11 @@ }, { "contractName": "l1-contracts/Diamond", - "zkBytecodeHash": "0x010000077f5dc340b0f3e6bf9e939aac1276e4c69f00f0e515701c04517cfbe8", + "zkBytecodeHash": "0x01000007a0e9579f2183ecc5ebd770535827de040f0da6fa100601c27c8dc1cc", "zkBytecodePath": "/l1-contracts/zkout/Diamond.sol/Diamond.json", - "evmBytecodeHash": "0xfaa07386a2355489f5d3eeba1d371fc8e82c91407c5cabb32b36931556b02895", + "evmBytecodeHash": "0xe455e53e6f152fcd0a0971fef512f96872ef5e4be85384b231aa87de4c55f38a", "evmBytecodePath": "/l1-contracts/out/Diamond.sol/Diamond.json", - "evmDeployedBytecodeHash": "0x45ec689ac5f6096193de62ca0dc7b2751c52c6972142ae1019dba8d350cb9f10" + "evmDeployedBytecodeHash": "0x307de76957fd7ef7d297537b2740bd03445a2df51f018300b72062505b0d1594" }, { "contractName": "l1-contracts/DiamondInit", @@ -929,83 +929,83 @@ }, { "contractName": "l1-contracts/DiamondProxy", - "zkBytecodeHash": "0x01000245c7f7ee35d89ad080e2cbdb780224da962bd33e4edadf7874ee77dbbb", + "zkBytecodeHash": "0x01000245515993499326d5d2f5e96a2afa083ddafb827c4269183f44471c2433", "zkBytecodePath": "/l1-contracts/zkout/DiamondProxy.sol/DiamondProxy.json", - "evmBytecodeHash": "0x08c4e94b9010f9d4e0aa605496a05d9cb8585deab461015dc10f2e2d1b69eea4", + "evmBytecodeHash": "0x57ae2c345a37fd8869f3701eb5797a72b249bd49dfcca25056eb28cf1e63576f", "evmBytecodePath": "/l1-contracts/out/DiamondProxy.sol/DiamondProxy.json", - "evmDeployedBytecodeHash": "0xe556af479fed97520761396e584f4cc8ac65c99977c9885e276a08af8cf68b60" + "evmDeployedBytecodeHash": "0x830dd0b9b1ead04f52dc71ebed9a839f9f85a9e930f3f2cb61d1e32a568ae724" }, { "contractName": "l1-contracts/DualVerifier", - "zkBytecodeHash": "0x010000d30ce4136267fe968979e2e98f302610cdb363f85f63a1fc9816f8c52a", + "zkBytecodeHash": "0x010000d3c9b491541063824d5e319fbdedc20ba24b4a10e534eb2a1666c5c55f", "zkBytecodePath": "/l1-contracts/zkout/DualVerifier.sol/DualVerifier.json", - "evmBytecodeHash": "0x17fd693bea7c174575a0960c8b783e41c70b18dc408f848d9d333d1ae891f514", + "evmBytecodeHash": "0x163c45b98fa5e7f0ae49bb9c0691241b0f910820325c402b44e830f74381d80b", "evmBytecodePath": "/l1-contracts/out/DualVerifier.sol/DualVerifier.json", - "evmDeployedBytecodeHash": "0xb3307c3c7badcaf429798fccb6dcabbb74f741f0ff635e1348d07f4ce8478e0e" + "evmDeployedBytecodeHash": "0x8742fff07ca6acab0b70292c4e84b73f080535405fd7e52cc45e26ec8a4d466e" }, { "contractName": "l1-contracts/DynamicIncrementalMerkle", - "zkBytecodeHash": "0x01000007951ababa7dc29aafd8e0e0f61af9ad3bb71678c43592a499509572d0", + "zkBytecodeHash": "0x010000079afc73441a76569a669415031375b049d6fb38def7f70a4941d1d04a", "zkBytecodePath": "/l1-contracts/zkout/DynamicIncrementalMerkle.sol/DynamicIncrementalMerkle.json", - "evmBytecodeHash": "0x1411a42ca0a6a363fcc35aef3548d0bf82e94746fcfa34c65a356e288401d12f", + "evmBytecodeHash": "0x5df0aa5525ac9779d6aa3900d7f58278ed6158cb2f7a87b4f564b8dc3929aa37", "evmBytecodePath": "/l1-contracts/out/DynamicIncrementalMerkle.sol/DynamicIncrementalMerkle.json", - "evmDeployedBytecodeHash": "0x35b9c18410eac52c54a70cac0f8f77a61893e5408d612eeeab4ddd45b77a5ab3" + "evmDeployedBytecodeHash": "0x09194419aa9ae976e9050da2621cc3992706bc6c6a68a0ba37ef944e824ec6e1" }, { "contractName": "l1-contracts/ECDSAUpgradeable", "zkBytecodeHash": "0x01000007060437b2f23712de7b3e19db54d9e77235802daf5be2e79f723f32af", "zkBytecodePath": "/l1-contracts/zkout/ECDSAUpgradeable.sol/ECDSAUpgradeable.json", - "evmBytecodeHash": "0x4dc94826ab3488229991b6a087799cb74c70e08ea543a0b4a79b83cd3738774b", + "evmBytecodeHash": "0x7e0f326ae5c78c6a8cd619d826421974b276257834e4370a2bc49fa095873b36", "evmBytecodePath": "/l1-contracts/out/ECDSAUpgradeable.sol/ECDSAUpgradeable.json", - "evmDeployedBytecodeHash": "0x5f8548a188370531952b89772e90dd048fd6f5f17518bf03f7207d9f9f9e1841" + "evmDeployedBytecodeHash": "0xdff3777161982c371bb02c1f968c34f985a56ef0b42b3683da5e9c5c5df3ba41" }, { "contractName": "l1-contracts/ERC1967Proxy", "zkBytecodeHash": "0x010000995b4bcbf4b9d2eede849e79ef7f2019fdbfca92122e14bcd8f21172ee", "zkBytecodePath": "/l1-contracts/zkout/ERC1967Proxy.sol/ERC1967Proxy.json", - "evmBytecodeHash": "0x76536d2506147297710c71ebb9b13960c8f7aaddd512d48ccd4fe8ac00d6ddc7", + "evmBytecodeHash": "0x384dddf066d6f75961a7048c49f428dfa192bfb164662d839ca08d14d526faac", "evmBytecodePath": "/l1-contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json", - "evmDeployedBytecodeHash": "0x95eebd4d5e1c0c7747e3f02a11196ef6bf2096c1cbfb847291cc70481b9ae4c0" + "evmDeployedBytecodeHash": "0x1420ab0599ce4651ba28a15a667f31ac13edb75bb684879e13a6c701e28b0902" }, { "contractName": "l1-contracts/ERC20", "zkBytecodeHash": "0x0100014f180f4dd3eb99a9434dbc88812b1d0d009b4923a2c8bb1734b406dc06", "zkBytecodePath": "/l1-contracts/zkout/ERC20.sol/ERC20.json", - "evmBytecodeHash": "0xfdf9dcaa39e27121a9fb4c600f83e3071bea4322fc4c017116eca67995b1c1a4", + "evmBytecodeHash": "0xb596572db47fb3de230f0104f84420defbeb8927fcfd8492ca47382d90d526bd", "evmBytecodePath": "/l1-contracts/out/ERC20.sol/ERC20.json", - "evmDeployedBytecodeHash": "0xc06fb68d0c98fb02aa89485a16a0972d2858547af602234de6fbcab34663cd1c" + "evmDeployedBytecodeHash": "0x3eacfb93c680b5d8f1e37c9c24e5c90a6f4ba310c91341c5df7eadde708523fb" }, { "contractName": "l1-contracts/ERC20Upgradeable", "zkBytecodeHash": "0x010000e522ee538248b60f5b06dc3a55ab2639adecc19bd76edf57a4379dba0e", "zkBytecodePath": "/l1-contracts/zkout/ERC20Upgradeable.sol/ERC20Upgradeable.json", - "evmBytecodeHash": "0xf043b0e2a047d3cc7fa1a836ec4044b72c649718c0ce9e2505058abb6690c3be", + "evmBytecodeHash": "0x62831184ce3d13d9a5fa010cab70f84f3bebb190239bd2d9b453df443f4465ce", "evmBytecodePath": "/l1-contracts/out/ERC20Upgradeable.sol/ERC20Upgradeable.json", - "evmDeployedBytecodeHash": "0x4b1e528e3ec0896a541d0abb856de38b7ff3c2ab94ab0964c8ad02019bd56b1a" + "evmDeployedBytecodeHash": "0xb6587cbf126bfe88cc5cf48a375add2ac0c56d952748df38fde883cb21ca7525" }, { "contractName": "l1-contracts/EnumerableMap", "zkBytecodeHash": "0x01000007a146063593c95a2bbfdd41cea358ddc106150b57d75a197d51845684", "zkBytecodePath": "/l1-contracts/zkout/EnumerableMap.sol/EnumerableMap.json", - "evmBytecodeHash": "0xaad7760e04e0f2fa7a36e860d0a388e6ceca1f0db2f8ac447404af60ca1d3053", + "evmBytecodeHash": "0x6cb7a700c4e6e933df28bcb95914a47c3f28ea6f47a2265c7ee2684b9832e5f2", "evmBytecodePath": "/l1-contracts/out/EnumerableMap.sol/EnumerableMap.json", - "evmDeployedBytecodeHash": "0x0aa3f2c62fd0c9b30357162bf66941e800c7ab424912d041c5ff6273d257f0cc" + "evmDeployedBytecodeHash": "0x191509c02dc9373d92789d448dc67662484ba3c8f2f7cafe2a8c473f6e0bdf4e" }, { "contractName": "l1-contracts/EnumerableSet", "zkBytecodeHash": "0x01000007b58459aa05910ae26cf0ae5c1df59de5bd23590c8553f007c47a3240", "zkBytecodePath": "/l1-contracts/zkout/EnumerableSet.sol/EnumerableSet.json", - "evmBytecodeHash": "0xb08a80781a7a39e6223e61ff850923e15a445dcf501efb19821cf7e906126cfa", + "evmBytecodeHash": "0x4ad59b637b4683989338768707c32c2cc9c45fafed1bdd456063448b5a586ae2", "evmBytecodePath": "/l1-contracts/out/EnumerableSet.sol/EnumerableSet.json", - "evmDeployedBytecodeHash": "0x8152a86ec5da5cb0766a3ad871b04ee4e67e95969d6736dfd01b144436fb4f6c" + "evmDeployedBytecodeHash": "0x6ddbdb843bfcb7959bd51d45eb2c050702ab5bade8a1a7fade04c517d62e5d9a" }, { "contractName": "l1-contracts/EnumerableSetUpgradeable", "zkBytecodeHash": "0x0100000706bfef0b25446c02d345113acdde8bf899d45ebd46b1efa40fce2ac8", "zkBytecodePath": "/l1-contracts/zkout/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json", - "evmBytecodeHash": "0xdecae3f6fd4d8f4f3961e32291c54e6ae0a0ca2146d56f8a52dc97eefb39a4e7", + "evmBytecodeHash": "0xc15da0dc8182aca0630fcbc4771da379ca71e63e0684e214b817d439a52ed35b", "evmBytecodePath": "/l1-contracts/out/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json", - "evmDeployedBytecodeHash": "0xac0ab9b347d51da6f463f09306e3b5d763e92f5cbe1f324f51a716eb5ecaac24" + "evmDeployedBytecodeHash": "0xa45cb538e6c3370811b51a02839a1cc7daf5622ee88c6520691471310a54febd" }, { "contractName": "l1-contracts/ExecutorFacet", @@ -1017,11 +1017,11 @@ }, { "contractName": "l1-contracts/FullMerkle", - "zkBytecodeHash": "0x01000007967466925c2fcc8ac58b02492356e4614dca5aa5bce6764538905cbf", + "zkBytecodeHash": "0x01000007e475fac5a5a1212077cb29f9f5dfcc855e771c45596dfcb3cc9e1e5b", "zkBytecodePath": "/l1-contracts/zkout/FullMerkle.sol/FullMerkle.json", - "evmBytecodeHash": "0x83fb228a7aafa4bcf9deee78606c9b8c3647df62672bc1c2af8e8cb6be5bdbf8", + "evmBytecodeHash": "0x6980bb2ae546ee9aba69ea365c61da5768885b2232244cbb34101499c24ab34c", "evmBytecodePath": "/l1-contracts/out/FullMerkle.sol/FullMerkle.json", - "evmDeployedBytecodeHash": "0x45f9b730dc8ae0d9c3f688e536f1da2cd96dd2c6970fc530f09c8d80b490b0ff" + "evmDeployedBytecodeHash": "0xed3ef271d396dc487479049451c20f87d32dd703d25ed0a31666e3273d5caca8" }, { "contractName": "l1-contracts/GatewayCTMDeployer", @@ -1033,11 +1033,11 @@ }, { "contractName": "l1-contracts/GatewayTransactionFilterer", - "zkBytecodeHash": "0x0100013d1c9ac5939eccb5385b5d6032d71bb08e08accb5713fecb71f1f6bbda", + "zkBytecodeHash": "0x0100013da75876e90811c5cf509c0be51666b9e8640e3f8b9ca747679bccd8db", "zkBytecodePath": "/l1-contracts/zkout/GatewayTransactionFilterer.sol/GatewayTransactionFilterer.json", - "evmBytecodeHash": "0xff12582d13f54a0e6062537f6b8b73033affdcefa1baa2a00880f27b38787f21", + "evmBytecodeHash": "0x0a065b6170acc6bf3705fb1e069df5e78fe7fa78fbcbd5b4d9642644cd0bf88f", "evmBytecodePath": "/l1-contracts/out/GatewayTransactionFilterer.sol/GatewayTransactionFilterer.json", - "evmDeployedBytecodeHash": "0x47f4de8c67c5e301e210fd5b60056382cadc685cd6aee0499b581a9b0c265e18" + "evmDeployedBytecodeHash": "0x1e9a9ee0083456b3c1a995aef53c8dd0dc524ee33750c9bf9d23744bada9c721" }, { "contractName": "l1-contracts/GatewayUpgrade", @@ -1057,35 +1057,51 @@ }, { "contractName": "l1-contracts/Governance", - "zkBytecodeHash": "0x0100030172f1cd4de61aceb401d525750e86628e1b562d0648d98301efbb7e0a", + "zkBytecodeHash": "0x010003014839e90632befbe27dd40b5a02587e5fd2b69183b026a412a90846ab", "zkBytecodePath": "/l1-contracts/zkout/Governance.sol/Governance.json", - "evmBytecodeHash": "0xf00f7ccc8585420d43ac7daad0cbc1f44a664470a9f4ca08bd8afe9cbabe924f", + "evmBytecodeHash": "0x34ea334511bcfabfbe3ef83b3951c9bc4fbb72d000a5d847caffe1f272e5a661", "evmBytecodePath": "/l1-contracts/out/Governance.sol/Governance.json", - "evmDeployedBytecodeHash": "0x46fa3ac9301e22dfb8a4b77f76462e619491235ba3f717a81bd3fd5eb76737dc" + "evmDeployedBytecodeHash": "0x3494d76b9180d3a8bf3e2670f18e270f181e4759afd190ca26d4b3cb1c4381fc" }, { "contractName": "l1-contracts/GovernanceUpgradeTimer", - "zkBytecodeHash": "0x010000c1d9cbaba2af6fe3e8f906016a6698d0a83611e7bf2c6a0a81fda200db", + "zkBytecodeHash": "0x010000c1f127bb61d5dcf8cd4eb796834a643eeb83e3663c7eed413543300739", "zkBytecodePath": "/l1-contracts/zkout/GovernanceUpgradeTimer.sol/GovernanceUpgradeTimer.json", - "evmBytecodeHash": "0xf3733ed0152df69875e199f685abb625f59775018b8e73e783b510bdbba7342f", + "evmBytecodeHash": "0x55f18bec2c51b3752090cf8d2c3fd19af6312159994951af7d7616dd069b7d4b", "evmBytecodePath": "/l1-contracts/out/GovernanceUpgradeTimer.sol/GovernanceUpgradeTimer.json", - "evmDeployedBytecodeHash": "0x63372a84de151f1868dabc152c3a51203d6150ae0d6ca1c5d35abd2b711b00f2" + "evmDeployedBytecodeHash": "0xf6220663b4ca37a685b3ab4edde03009737ba02f3fbfd5a6f131c0fe69e37862" }, { "contractName": "l1-contracts/L1AssetRouter", - "zkBytecodeHash": "0x010008376cb2294d938944b75b3f78eb2db8e75eb3c611aee9cd67051c1dc2c5", + "zkBytecodeHash": "0x01000833138fcf0bf020f3463fb50db133bfb6947c10101abf84c8ea7ad954ed", "zkBytecodePath": "/l1-contracts/zkout/L1AssetRouter.sol/L1AssetRouter.json", - "evmBytecodeHash": "0xba50b65cf61dff785a3b118e44d1b18aa10b6a538cb5836907bdfdf2dc3a31da", + "evmBytecodeHash": "0x4245bfbd0759b436673918b2f702aec833a4669a95808662a3879f13d94cad93", "evmBytecodePath": "/l1-contracts/out/L1AssetRouter.sol/L1AssetRouter.json", - "evmDeployedBytecodeHash": "0x442a0d7d018b9bbe62bc15da35243f47ec685ea63cb0b2a22b8d37d4ab1c41a9" + "evmDeployedBytecodeHash": "0x9d041d6f00512159f4b0968060d8d621ca89f100e27b275be4ffa60e1ce690f7" + }, + { + "contractName": "l1-contracts/L1Bridgehub", + "zkBytecodeHash": "0x0100076354f3cacfa7401b7c5b47e1f15c40a7d2b944f74a89d1f99c847fbf83", + "zkBytecodePath": "/l1-contracts/zkout/L1Bridgehub.sol/L1Bridgehub.json", + "evmBytecodeHash": "0x4a4422ad3dca0d8e225e174e4f8358603256fa048b3be4fc284bfc6b8bacb9bd", + "evmBytecodePath": "/l1-contracts/out/L1Bridgehub.sol/L1Bridgehub.json", + "evmDeployedBytecodeHash": "0xd4566f4a61f63829eccfbfb39aa615e30a14bded52c637554a77cb911785ecf1" + }, + { + "contractName": "l1-contracts/L1ChainAssetHandler", + "zkBytecodeHash": "0x010003898ac0ecfa3ffeb392cf0d7a84bf7cdc02f94e4d54b6465ffa78945c0d", + "zkBytecodePath": "/l1-contracts/zkout/L1ChainAssetHandler.sol/L1ChainAssetHandler.json", + "evmBytecodeHash": "0x37f003b79c9c90fa28049cfd10d4f3fca979d8f1aa8a0067469e956e32f6efc7", + "evmBytecodePath": "/l1-contracts/out/L1ChainAssetHandler.sol/L1ChainAssetHandler.json", + "evmDeployedBytecodeHash": "0xb3f0e96810cfe7938648c2ee1d49ecad0f35f3a98be8122ecb15c6b3d26cb608" }, { "contractName": "l1-contracts/L1ERC20Bridge", - "zkBytecodeHash": "0x010002e94fdd40b8dbb57ebbf542ae8b21302acb72826cef0782c6b136046097", + "zkBytecodeHash": "0x010002e97deb983714f0cc9fc813015efa23abcfaa74c5ec4127be7a36e33912", "zkBytecodePath": "/l1-contracts/zkout/L1ERC20Bridge.sol/L1ERC20Bridge.json", - "evmBytecodeHash": "0x8bf25130fab07df09f467a3895224e84c6ec85a964b6da2f5e2318035eb78c53", + "evmBytecodeHash": "0xb63de95dd88be2d8ef01319a7796c937ac65f221ab7c4d8ffd799fc9b6785449", "evmBytecodePath": "/l1-contracts/out/L1ERC20Bridge.sol/L1ERC20Bridge.json", - "evmDeployedBytecodeHash": "0xca958a8dd6b48d7e70f16545dd139289638e9d13ddb5c52f69b33d019b16d286" + "evmDeployedBytecodeHash": "0x42c8fb018cc50673c733fc365ae57d97a0911fcf2af74bb2b7876be0cf90c391" }, { "contractName": "l1-contracts/L1GenesisUpgrade", @@ -1097,11 +1113,11 @@ }, { "contractName": "l1-contracts/L1NativeTokenVault", - "zkBytecodeHash": "0x010009891e648c0f4597c77f6a6d6358337ebd666add4b3d0251e1c3ac55329e", + "zkBytecodeHash": "0x01000945263399757522cb42f1212eb9853969136dd1b72d9dd75e82f959e56d", "zkBytecodePath": "/l1-contracts/zkout/L1NativeTokenVault.sol/L1NativeTokenVault.json", - "evmBytecodeHash": "0x967d4212421dab1f16c023d10f89c35c1694762dfa61d75c61a158ceda9641eb", + "evmBytecodeHash": "0xf9eaae71290a8ff6315e91630d999f8dfd7cb51f972918bc1bd836238c365f0e", "evmBytecodePath": "/l1-contracts/out/L1NativeTokenVault.sol/L1NativeTokenVault.json", - "evmDeployedBytecodeHash": "0x69f8c6968ea6adedb535a258526fe4669b39884c5571934461456c10477c6bea" + "evmDeployedBytecodeHash": "0xb43006a6780c73f2007a384383dd5ab9e25ff0d7ae44b228c1ece76575772d32" }, { "contractName": "l1-contracts/L1Nullifier", @@ -1123,41 +1139,89 @@ "contractName": "l1-contracts/L1VerifierFflonk", "zkBytecodeHash": "0x010009bf68f8b5fb7ddf225ab004155517aed2822e27fe6039e574f62a4a96e2", "zkBytecodePath": "/l1-contracts/zkout/L1VerifierFflonk.sol/L1VerifierFflonk.json", - "evmBytecodeHash": "0x6288e9af14d7d2899832c37eb5fd231261116c3d6e58ce2532b10e110640cf3c", + "evmBytecodeHash": "0x88eff30f7791c77e9551fa4b718631000e7fd871650931ae62315a7c269edaf5", "evmBytecodePath": "/l1-contracts/out/L1VerifierFflonk.sol/L1VerifierFflonk.json", - "evmDeployedBytecodeHash": "0xc1209209da6af03183afe41df0fdf3c5a21207c3fb50d527a92dd4f1b5f6257d" + "evmDeployedBytecodeHash": "0x71f15b3a546da856b3e8d77a9c4c4a9aa5fbe611c4843406dcfd859dd6621959" }, { "contractName": "l1-contracts/L1VerifierPlonk", - "zkBytecodeHash": "0x01000dbb61c136b35bff0dd894dd43a7547ac94b0304abdf5e6aefaec2b622da", + "zkBytecodeHash": "0x01000dbb00e580c7118e81fce5c65fac12de1fe353dda8a9055a9e3e040bc612", "zkBytecodePath": "/l1-contracts/zkout/L1VerifierPlonk.sol/L1VerifierPlonk.json", - "evmBytecodeHash": "0x80826e81704eb941083a822e582366225f3ad64c7fcd692712cbcaf885453414", + "evmBytecodeHash": "0xf3b7c5074b2176e0363fb456de5116e2ea4a7dea399e9c2295bf2f9af0f43832", "evmBytecodePath": "/l1-contracts/out/L1VerifierPlonk.sol/L1VerifierPlonk.json", - "evmDeployedBytecodeHash": "0x64ecf77b416fbf7f7b697ed313ba3d9c4bc68c123cb2c65c54224486b9377778" + "evmDeployedBytecodeHash": "0xf0987811a3d6bb082d54432c39f0f58141cd59da8446cd68edcb98313d719001" }, { "contractName": "l1-contracts/L2AdminFactory", - "zkBytecodeHash": "0x010000bb1d81997ee5e9502f12c7c5d2c2b02f9aaba22eb9acf9947b84df63d6", + "zkBytecodeHash": "0x010000bbe68e48dc66036382fc9c04e8b4edda078a23fea6e18342713f576b40", "zkBytecodePath": "/l1-contracts/zkout/L2AdminFactory.sol/L2AdminFactory.json", - "evmBytecodeHash": "0x74e40bda0667164a75e5fb043495b70410c2688157b689d41381fa86dac258ab", + "evmBytecodeHash": "0xd77dd43763e432a2346cfe14ec94221f883c3ca6738e5ec75b51d889223a0892", "evmBytecodePath": "/l1-contracts/out/L2AdminFactory.sol/L2AdminFactory.json", - "evmDeployedBytecodeHash": "0xf7fd6429dcfc03d7bb25d77d0aec6200532d2ddf62bea6e107b9b362e2bc2d51" + "evmDeployedBytecodeHash": "0x985796f3f62fb2a570c898f401f5181ef583f4248b8057c1b3462f669c543f28" }, { "contractName": "l1-contracts/L2AssetRouter", - "zkBytecodeHash": "0x01000531bb72234d84f2629e2bd6db8957b51584ef9f7168f2a2344748c3cfd7", + "zkBytecodeHash": "0x010004c751f25002f9b471d13e27c8f0bbc22ef7d14f91d65c60f179fecfdca1", "zkBytecodePath": "/l1-contracts/zkout/L2AssetRouter.sol/L2AssetRouter.json", - "evmBytecodeHash": "0x3c56e6d9a43df696618aabcf5fa40b1a8c1573a4d5e3b05dc08a234ba657fb3c", + "evmBytecodeHash": "0x70c51f634e0bae0a681746efb9817a5a40b67efe423611388b76bf3f81a0553f", "evmBytecodePath": "/l1-contracts/out/L2AssetRouter.sol/L2AssetRouter.json", - "evmDeployedBytecodeHash": "0xc532dd57ddc5c7c93f7d0270fa8ed9d03b852e19733538ae6cdc3d2b77546631" + "evmDeployedBytecodeHash": "0x0574e6138e34118f5af084fec84512028335973cedf56f1ffeba620b6cbdcd83" + }, + { + "contractName": "l1-contracts/L2Bridgehub", + "zkBytecodeHash": "0x010007539865abbc765a3099977541e38a129a1f573dba3585196a0b2c538587", + "zkBytecodePath": "/l1-contracts/zkout/L2Bridgehub.sol/L2Bridgehub.json", + "evmBytecodeHash": "0xd2f81c94db115880d24f1f6c026f4ee3d569957138a17536fa6d3a7a09378ade", + "evmBytecodePath": "/l1-contracts/out/L2Bridgehub.sol/L2Bridgehub.json", + "evmDeployedBytecodeHash": "0x23f170e66e46258185295ff50909b78b9b34fe81e4f013a33936e9d640fc8718" + }, + { + "contractName": "l1-contracts/L2ChainAssetHandler", + "zkBytecodeHash": "0x0100035f213486d4a6d2bc380f1ef27da5304617cdfc2682880fbfb421a5a53f", + "zkBytecodePath": "/l1-contracts/zkout/L2ChainAssetHandler.sol/L2ChainAssetHandler.json", + "evmBytecodeHash": "0xaa05669dfc23288cbfab35b691673eda3e35f45d7dcf8c2b034e269c224d95c6", + "evmBytecodePath": "/l1-contracts/out/L2ChainAssetHandler.sol/L2ChainAssetHandler.json", + "evmDeployedBytecodeHash": "0x3876642a311fb7f22b8ef0122ecf835c1e1494db4f63eb822df2f09d1080f71f" + }, + { + "contractName": "l1-contracts/L2ComplexUpgrader", + "zkBytecodeHash": "0x010000a9fec73ee14d9674203e18eadf664c465aff7891789fa66ec94d4d55a9", + "zkBytecodePath": "/l1-contracts/zkout/L2ComplexUpgrader.sol/L2ComplexUpgrader.json", + "evmBytecodeHash": "0xa176333fbad4a170e2e4097893b412e79f83b1f1507deb0772ba6411ea03466c", + "evmBytecodePath": "/l1-contracts/out/L2ComplexUpgrader.sol/L2ComplexUpgrader.json", + "evmDeployedBytecodeHash": "0x9f478ac8a82d5d8570c9d9f5dd80bb6493400f89e3c89548ca0dd9d1e4d64f84" }, { "contractName": "l1-contracts/L2ContractHelper", - "zkBytecodeHash": "0x0100000794e130b036a48b2b581a658102b004c037fa0942ace76e1cf01fc07e", + "zkBytecodeHash": "0x01000007fe3181b26975dddfb0500e5177f210436a681b43b7b5154568862af2", "zkBytecodePath": "/l1-contracts/zkout/L2ContractHelper.sol/L2ContractHelper.json", - "evmBytecodeHash": "0x737d230d03eed68acc6755e7f91d02a2837c1009f0564ee3d6cf49aaa25a6d32", + "evmBytecodeHash": "0x8f19bbdfad0513d6290d8c7ef0ea5d9c0804c83e2bd6d72413f68c44e6556948", "evmBytecodePath": "/l1-contracts/out/L2ContractHelper.sol/L2ContractHelper.json", - "evmDeployedBytecodeHash": "0x071504cd16634d41cb93847a7adbf896528926c5ac8813d7fd633bcb12d2ffe7" + "evmDeployedBytecodeHash": "0xd6be1e286c77c2177a883266004944e62af1cf3290f8a00964173af3b193849a" + }, + { + "contractName": "l1-contracts/L2GenesisForceDeploymentsHelper", + "zkBytecodeHash": "0x010000072e99fd38e7882e870f3afcb972418d9864a394f9682c999516b422f0", + "zkBytecodePath": "/l1-contracts/zkout/L2GenesisForceDeploymentsHelper.sol/L2GenesisForceDeploymentsHelper.json", + "evmBytecodeHash": "0x2f657f39158fe34cd16bab6fada9201c6837c64617370f0dcb5108280efae7d3", + "evmBytecodePath": "/l1-contracts/out/L2GenesisForceDeploymentsHelper.sol/L2GenesisForceDeploymentsHelper.json", + "evmDeployedBytecodeHash": "0x9c0f0569b5b7e069028e5fbb4c1616d16f157616459483ec35246677716b1ab5" + }, + { + "contractName": "l1-contracts/L2GenesisUpgrade", + "zkBytecodeHash": "0x0100034d25aef9925382e0716ad32c9bf64271e21afc38e7d38019e51fab4243", + "zkBytecodePath": "/l1-contracts/zkout/L2GenesisUpgrade.sol/L2GenesisUpgrade.json", + "evmBytecodeHash": "0x04605d0ecea54745403d3b01ae63e437de966a6620a3b1f1cf3473904c22fb74", + "evmBytecodePath": "/l1-contracts/out/L2GenesisUpgrade.sol/L2GenesisUpgrade.json", + "evmDeployedBytecodeHash": "0x168f593da917cc3c63e293d48f5c9d6496ef6dd389cd6a69d1593bbba4db5fd4" + }, + { + "contractName": "l1-contracts/L2MessageRoot", + "zkBytecodeHash": "0x010002e15b26316c5e9e692e5df2c3a90fc90c35298162718a3a00e9e9759a76", + "zkBytecodePath": "/l1-contracts/zkout/L2MessageRoot.sol/L2MessageRoot.json", + "evmBytecodeHash": "0x3b885a3ab99e92b8facabe07ff252841710aba6d90d464a403674d5a5876209f", + "evmBytecodePath": "/l1-contracts/out/L2MessageRoot.sol/L2MessageRoot.json", + "evmDeployedBytecodeHash": "0x6f1634cda8f0a32d3b83543652e2867f0346fb482e6e87c49366795da94104a4" }, { "contractName": "l1-contracts/L2MessageVerification", @@ -1169,67 +1233,67 @@ }, { "contractName": "l1-contracts/L2NativeTokenVault", - "zkBytecodeHash": "0x010008535b849d71a11a1624c551b5f64c00fc036f8a92cc75bc7d82342acf0a", + "zkBytecodeHash": "0x01000793187cd1187d973b4a1eb133ab57aba05a6d92b43b8d2788e72e03545f", "zkBytecodePath": "/l1-contracts/zkout/L2NativeTokenVault.sol/L2NativeTokenVault.json", - "evmBytecodeHash": "0x432d3354d97e27eb02b1a19cbd8b9a65d2472c91a13c81301d518e30f865be61", + "evmBytecodeHash": "0xcfee43211d03104f1dfa104c856a5a409c99a73d2d85fdfa3e25851c2b6a2c95", "evmBytecodePath": "/l1-contracts/out/L2NativeTokenVault.sol/L2NativeTokenVault.json", - "evmDeployedBytecodeHash": "0xbb6d63fc167b9285f13b912648686e879e1d162342c81243cce29e60962aafa7" + "evmDeployedBytecodeHash": "0xad7c875754e593c09b8fe1aea5bb685bc08bc41ac1c67dbed3a265a1c77cf441" }, { "contractName": "l1-contracts/L2ProxyAdminDeployer", "zkBytecodeHash": "0x0100005fcb83d64a2c142996104330e7ce72ae4c2828fa8305d2524cd457e9a5", "zkBytecodePath": "/l1-contracts/zkout/L2ProxyAdminDeployer.sol/L2ProxyAdminDeployer.json", - "evmBytecodeHash": "0x3d7ac817bf44b7213b2f6672d1eec308f7534b9ee707839b297a34c637a818ee", + "evmBytecodeHash": "0x2ec94fa96e733a87bdc04e94a14e81c7750c1c6ebd6057b16a4a31199a697b29", "evmBytecodePath": "/l1-contracts/out/L2ProxyAdminDeployer.sol/L2ProxyAdminDeployer.json", - "evmDeployedBytecodeHash": "0x017e0a802b14c0f5070490f38b3a6dae7311de0350d9469b0251ae89a3cd9145" + "evmDeployedBytecodeHash": "0x7e1597c1d8c4f1caaad65a65fc71b5810ca8113370807d577de1c83e4dce3dd1" }, { "contractName": "l1-contracts/L2SharedBridgeLegacy", - "zkBytecodeHash": "0x010001958d1b7ec307cfeae5944b19e56c7f12e633e4109c17c0d5e96e8a43dc", + "zkBytecodeHash": "0x01000195309558c7dd50e5808b1ea0a413a4deee2fa0ec7adf76c066274a9de9", "zkBytecodePath": "/l1-contracts/zkout/L2SharedBridgeLegacy.sol/L2SharedBridgeLegacy.json", - "evmBytecodeHash": "0x4288c8db8c0844a68dd7a60c1af0d7bd6ae4bf28a34cc270d7737137b615cd7f", + "evmBytecodeHash": "0x72fc6f3d6c3ac4a5262e56931846d95ab7cd88db3bde0277b3762af495f45f47", "evmBytecodePath": "/l1-contracts/out/L2SharedBridgeLegacy.sol/L2SharedBridgeLegacy.json", - "evmDeployedBytecodeHash": "0xc27cbc0ad475471719e2592fc73d93dd27ef232f505703534e16d05cfd09e91a" + "evmDeployedBytecodeHash": "0x25b900d76d5fb2d2dda9229da14a1aa2504616ac3d295522d6ee528154e81c41" }, { "contractName": "l1-contracts/L2VerifierFflonk", "zkBytecodeHash": "0x010009ed49b08976342fdf5d09e4bd7a7c66c76b6f6312666732669ad8a2cdc2", "zkBytecodePath": "/l1-contracts/zkout/L2VerifierFflonk.sol/L2VerifierFflonk.json", - "evmBytecodeHash": "0x5df2248136838b7835f6d7d7b8794fc0a601bfabe2eecdbe4913f5ed8a0b15ea", + "evmBytecodeHash": "0x687994571392188f0e497c472cdd34bddc6131ffc844d844576ddaa24aed4b5d", "evmBytecodePath": "/l1-contracts/out/L2VerifierFflonk.sol/L2VerifierFflonk.json", - "evmDeployedBytecodeHash": "0x2ca1f2bd3ed2c703518eb33542861cd167ac5c73e51385f94a7b8069d316045f" + "evmDeployedBytecodeHash": "0x0840ddddb5f841cbdd9c4f2dd67fd1beff1c3af623e422eb9a6651f9e23e745b" }, { "contractName": "l1-contracts/L2VerifierPlonk", - "zkBytecodeHash": "0x01000e17ae0bd6b5a89490a640cfb332e8b11edc9023d5649998c15dbcf9bc83", + "zkBytecodeHash": "0x01000e173a44f0d4fbfc73b70b22bab32e7b8e3ded136f73bf006a64634ef824", "zkBytecodePath": "/l1-contracts/zkout/L2VerifierPlonk.sol/L2VerifierPlonk.json", - "evmBytecodeHash": "0x5374754e6276da0f8ebef6e2f6ef0b0d13949788595e13d31e84316313749213", + "evmBytecodeHash": "0x5947afe0446437dadea388f64fd39a96fb37d913e1c97ad87bbed8b2d5ea09b8", "evmBytecodePath": "/l1-contracts/out/L2VerifierPlonk.sol/L2VerifierPlonk.json", - "evmDeployedBytecodeHash": "0x4aef7addf976b0465d283c365eb0d53f86b47a12534df2d855bf3eac40226c86" + "evmDeployedBytecodeHash": "0xf064e87430fe9d2108e73040cfd8b68144ee85825e2ef3691992ffa0eb00ff0d" }, { "contractName": "l1-contracts/L2WrappedBaseToken", - "zkBytecodeHash": "0x0100034143abddcabf9e1b6e108badda72ed45ff90e319117fb3595722cc8b6a", + "zkBytecodeHash": "0x01000341f208c1e3caa1a94ba99ceb994cfe3621de6df92bf61532bf836ece17", "zkBytecodePath": "/l1-contracts/zkout/L2WrappedBaseToken.sol/L2WrappedBaseToken.json", - "evmBytecodeHash": "0xf3e65fc4cb151936c01fe4654e293454ed0c567d3cc853818895531e71dc7fd2", + "evmBytecodeHash": "0x9ab4bec35c98c2bd7f61248957db16ceb57468fcc3b55a2d65aa6daf78240b1f", "evmBytecodePath": "/l1-contracts/out/L2WrappedBaseToken.sol/L2WrappedBaseToken.json", - "evmDeployedBytecodeHash": "0xb8ea70bf8b779b4f68bef6d1f3dbf12322c1a6f97c5821de1f6f35bab55318b8" + "evmDeployedBytecodeHash": "0xef24020bf98567b8a0712ace3f5185dc320e15533f298d27ac3852e27bff180d" }, { "contractName": "l1-contracts/L2WrappedBaseTokenStore", - "zkBytecodeHash": "0x010000a9b1a8fa893af1d89e4391f7fbbaf9470db783e1f95d1d20c401e880f1", + "zkBytecodeHash": "0x010000a90e4dc4ee44fe41a3a23085e118821535de73f9262a16c61fc282ed15", "zkBytecodePath": "/l1-contracts/zkout/L2WrappedBaseTokenStore.sol/L2WrappedBaseTokenStore.json", - "evmBytecodeHash": "0xc3a4e1acf08496a96daecd4eabdef166f5b83c6ccad6a59429236bd5d187c373", + "evmBytecodeHash": "0xee394b49ffebe0c4962cb5ed09344114d417d1c16fdd605502aa300ef7975167", "evmBytecodePath": "/l1-contracts/out/L2WrappedBaseTokenStore.sol/L2WrappedBaseTokenStore.json", - "evmDeployedBytecodeHash": "0x588fd40664987a73ada365e4fd27edfd4cfaba52c4565b272c2a7c0862429005" + "evmDeployedBytecodeHash": "0xd002c81d17dbd44ed003cce6822e6ac7683b4ab1865703bf52a53639242f7145" }, { "contractName": "l1-contracts/LibMap", "zkBytecodeHash": "0x01000007c9d4634530675b17346b57327af5c6f4ee376f121d51ab7b0a2a2111", "zkBytecodePath": "/l1-contracts/zkout/LibMap.sol/LibMap.json", - "evmBytecodeHash": "0xd675a82c93214994e704e9ca6cb42be1ef15e05f08b62105b94591c1451c16f9", + "evmBytecodeHash": "0x8f5acac1789069e244f17fb05974ec8ed83ec29c7e8adfcb3c0f0b788e110612", "evmBytecodePath": "/l1-contracts/out/LibMap.sol/LibMap.json", - "evmDeployedBytecodeHash": "0x5e2fe29366bb5dddde2f3fc4252b29aefc397a93b54fa2e5f4d70da6819c3976" + "evmDeployedBytecodeHash": "0xfdfccfe769296d5f70ac30e3abd6767af59b5fb182fb5ed77d39ffc35173f986" }, { "contractName": "l1-contracts/MailboxFacet", @@ -1243,25 +1307,25 @@ "contractName": "l1-contracts/Math", "zkBytecodeHash": "0x0100000784fa40c1f5aa5ee8bd526141395649512aad43de97ea24e2129e4aa6", "zkBytecodePath": "/l1-contracts/zkout/Math.sol/Math.json", - "evmBytecodeHash": "0x74db5ccbf8ab82b2f16550c7a2d56dde7247fb48e365b9f204dee84937845f6d", + "evmBytecodeHash": "0xb290809e422a8e7b9b423cefc6c808e28b924538e6ce6d3d435299149ad14ab3", "evmBytecodePath": "/l1-contracts/out/Math.sol/Math.json", - "evmDeployedBytecodeHash": "0xe48c4cb85f6238d73d834a908c6aa1313060cb7b5950d290a814fdfdcb6368e5" + "evmDeployedBytecodeHash": "0x6b22c7b4ab2b78f6e579189ceba3ba6f21210d8483cddd2efa173094626bce57" }, { "contractName": "l1-contracts/MathUpgradeable", "zkBytecodeHash": "0x01000007d5aec9b0ffc3be29e7464aa6833f48bbb44d6485e811e281d6949713", "zkBytecodePath": "/l1-contracts/zkout/MathUpgradeable.sol/MathUpgradeable.json", - "evmBytecodeHash": "0xf3bf3a6d5324771cba823f95550c6a9eca4ac5d91f3ca7a8797ca4d6f86709cb", + "evmBytecodeHash": "0xb8d52fb4e4beb3fb086dc3a8c3f8e43f79c6ba6c1eee7ef5c2a56f74929d859a", "evmBytecodePath": "/l1-contracts/out/MathUpgradeable.sol/MathUpgradeable.json", - "evmDeployedBytecodeHash": "0x20f7236bd2051084ff472a2dab7230610a1689a79aca2f9108632fe557b6cb35" + "evmDeployedBytecodeHash": "0xf22ed26f1a287a144c822f26f72397ce4554aa1e28c474e6fabaa8457c7208a4" }, { "contractName": "l1-contracts/Merkle", - "zkBytecodeHash": "0x01000007dff79c74e8fbcd0d3b192b6f813066580c7e05a2bee02de6d0405b16", + "zkBytecodeHash": "0x01000007120e21695fbbef8c06551cf0c024e7da72e070b083eb9cc55d53da59", "zkBytecodePath": "/l1-contracts/zkout/Merkle.sol/Merkle.json", - "evmBytecodeHash": "0x971d82c1d8f674581baafc7a803aa0a2cf2e0c8d73d7995917ba044897fd75a9", + "evmBytecodeHash": "0xd7b811e7eb8ff2c351253633dd52bef4ce21ca8af92ce45d7f839f232dfc483b", "evmBytecodePath": "/l1-contracts/out/Merkle.sol/Merkle.json", - "evmDeployedBytecodeHash": "0x350f53c6877935449b79cf05f15eff87dc2724078187b08d4d4b7f9bc037323a" + "evmDeployedBytecodeHash": "0x0d92d806c92ce38b86280fa33553424a6ca711d5e52cf4ac8a7908a0bcf31b48" }, { "contractName": "l1-contracts/MessageHashing", @@ -1289,11 +1353,11 @@ }, { "contractName": "l1-contracts/PriorityQueue", - "zkBytecodeHash": "0x01000007b6a035599b2b08c387adb9fdc86c8a07acf0ac1f11a4f6deaff4fbf5", + "zkBytecodeHash": "0x01000007e2834c895e6477f0dd38a86010bb6fad181ef75ecaced1cd3b1b9b42", "zkBytecodePath": "/l1-contracts/zkout/PriorityQueue.sol/PriorityQueue.json", - "evmBytecodeHash": "0xe347e48f219575c26c7045de7abe81cab5fc86f336fe1f6519c9d4ab403c7143", + "evmBytecodeHash": "0xacaf5c625ab96c92ea7291100be7e7e18e62af1ce5d38edb26e3374a27b2547a", "evmBytecodePath": "/l1-contracts/out/PriorityQueue.sol/PriorityQueue.json", - "evmDeployedBytecodeHash": "0x139149421223eb35deae1e5131be538af712a364f94b1f01ebda648dd51e42c5" + "evmDeployedBytecodeHash": "0x193fe6cd130ddd5ca4362cdbc9e541ed6506dae86ab5065bd1389b776f876ec1" }, { "contractName": "l1-contracts/PriorityTree", @@ -1307,9 +1371,9 @@ "contractName": "l1-contracts/ProxyAdmin", "zkBytecodeHash": "0x010000e18d0788d925e16659993ff65cb636c3ed1fd5b90115ee07382b3ce24f", "zkBytecodePath": "/l1-contracts/zkout/ProxyAdmin.sol/ProxyAdmin.json", - "evmBytecodeHash": "0xae804cba018bd20f1433163bdb40280e81dd2b07ea50524148886c3682abb0a2", + "evmBytecodeHash": "0x7e2c59cb9ca698e861669742d7569941eefded41c01d69e67d564058d0b9a447", "evmBytecodePath": "/l1-contracts/out/ProxyAdmin.sol/ProxyAdmin.json", - "evmDeployedBytecodeHash": "0x14ab4271cecf41fd1de3364dcfb049553af19593cac645b24ca375c52a9c50ff" + "evmDeployedBytecodeHash": "0x5683303ff96274f4648f29035131dc4a1216966b7949f53823546ee171663acf" }, { "contractName": "l1-contracts/RelayedSLDAValidator", @@ -1321,59 +1385,59 @@ }, { "contractName": "l1-contracts/RestrictionValidator", - "zkBytecodeHash": "0x01000007dfa40a17641ae0476b6b2b92aa6efe674dcaa4eba0a6eeaaf4939352", + "zkBytecodeHash": "0x01000007ea37a9584df07c9fdf479c52adc11020fda980b69bf8c3b5ea5ceb7b", "zkBytecodePath": "/l1-contracts/zkout/RestrictionValidator.sol/RestrictionValidator.json", - "evmBytecodeHash": "0x63f5b71f62ad00d9725f53df1d9ef6507cb80c1457c0d653d4f5465e08449255", + "evmBytecodeHash": "0x0dd423e288087d6c220ab836e6c65c7b6e08172d8f7055998bfd4157ba05c4d9", "evmBytecodePath": "/l1-contracts/out/RestrictionValidator.sol/RestrictionValidator.json", - "evmDeployedBytecodeHash": "0xc906464730bce6f4706ff868754e4dd24e2ef95b0e11af8be7e6e909b4470b6f" + "evmDeployedBytecodeHash": "0x0667c7a50c45c55a794a4011c663651738ac0dcf7a56f07ec07f78d7ea5c2e71" }, { "contractName": "l1-contracts/RevertReceiveAccount", "zkBytecodeHash": "0x0100001b8591fba336df6685cf15a8f823a0111d0a6370e9f695abd1bd23cf3f", "zkBytecodePath": "/l1-contracts/zkout/RevertReceiveAccount.sol/RevertReceiveAccount.json", - "evmBytecodeHash": "0x2267239699453c5998d497bbc39e1b64b2c22cf3ad69326b3b5929a27971e12f", + "evmBytecodeHash": "0x2ab34fe79c7fc954a95e9098fdf60066f38ff1b04852754565b73b6134530086", "evmBytecodePath": "/l1-contracts/out/RevertReceiveAccount.sol/RevertReceiveAccount.json", - "evmDeployedBytecodeHash": "0xc900e4080679f84148d32383c2aefce71aaa6ce63504ace61595b5c1b9b0f215" + "evmDeployedBytecodeHash": "0x0be77cf6f4cc3a88fb43e1e2b57d5290133fdabb1f1c3ee6170ab8f06c002885" }, { "contractName": "l1-contracts/RevertTransferERC20", "zkBytecodeHash": "0x0100017b9a39434f86ab39017bcc0fd821445875a6a1aa93ac7a3aef1b7347c7", "zkBytecodePath": "/l1-contracts/zkout/RevertTransferERC20.sol/RevertTransferERC20.json", - "evmBytecodeHash": "0x398006d07ea9f30a7a7e4fd11eedb254c33957985bedd401b098817d6b72c728", + "evmBytecodeHash": "0xb148e02dc3e828f53b5f3efc98464d2c7ce6979b20f7a69d0420e1007d1dba94", "evmBytecodePath": "/l1-contracts/out/RevertTransferERC20.sol/RevertTransferERC20.json", - "evmDeployedBytecodeHash": "0xb4afdd7a35adcf6994891369dddefcc5569651f61fa3c20b2da2fb61e59e1252" + "evmDeployedBytecodeHash": "0x5483483eac99a7963a8b6e79a3881f06e221222616354fa0ef77773336690bfb" }, { "contractName": "l1-contracts/RollupDAManager", - "zkBytecodeHash": "0x010000714652fa9c8d807a818086048255fa96aff7cf766dd447b6a7985463a6", + "zkBytecodeHash": "0x010000718df58e4dd9834525a8f7e314800f24ea965d76ba7b27248ba48b0e6e", "zkBytecodePath": "/l1-contracts/zkout/RollupDAManager.sol/RollupDAManager.json", - "evmBytecodeHash": "0xb07d21cb4a376e9bf8250f32872f2ab33895b41d6d95339f612a2ee531e4228e", + "evmBytecodeHash": "0x0fa1c43ad28f36e5f870e57bbb7d50661f248908781c9a0803383f4da42b92a0", "evmBytecodePath": "/l1-contracts/out/RollupDAManager.sol/RollupDAManager.json", - "evmDeployedBytecodeHash": "0x8c85467c83c474b7c4caf6040bd64bcf48680b610cbf8ae5a45567975f2a9a2f" + "evmDeployedBytecodeHash": "0xe08e7b21a69e6e432cdfb293727ce700f6cf4f397fdf405f04d729c8af6858db" }, { "contractName": "l1-contracts/SafeCast", "zkBytecodeHash": "0x0100000730acac4ef083a37d6ab89aa36cd9963db4e489879b78fd75f23430a5", "zkBytecodePath": "/l1-contracts/zkout/SafeCast.sol/SafeCast.json", - "evmBytecodeHash": "0x4a0a496059c19390c76f1599fb94254c9edad03ea59b33da8575344807e20c0e", + "evmBytecodeHash": "0x1b87f8365def5ed93c0c7d48eba3e9177ffda5d02c8641e9ceb46771b0851dd3", "evmBytecodePath": "/l1-contracts/out/SafeCast.sol/SafeCast.json", - "evmDeployedBytecodeHash": "0x86f83221f827ae0104c67cbd0c783f95072cfb0062f8e489815a546c349aa9ae" + "evmDeployedBytecodeHash": "0xb5753a829807eb6d95e3118343982d38b54126606ce6ed83b6f18c27fb4b4bc2" }, { "contractName": "l1-contracts/SafeERC20", "zkBytecodeHash": "0x010000073b40f6657214c1c08498da4c6044e841db780ec53dcc6e1319ce4ccb", "zkBytecodePath": "/l1-contracts/zkout/SafeERC20.sol/SafeERC20.json", - "evmBytecodeHash": "0x8bcaaae3edcd704336fb87ff526323636ab7c153592a0804f8b65156f3cbdd73", + "evmBytecodeHash": "0x2bb86eddb3caaa2a745c036421410f7935b4d1a7d78edb9e665036f21716c1b5", "evmBytecodePath": "/l1-contracts/out/SafeERC20.sol/SafeERC20.json", - "evmDeployedBytecodeHash": "0x37bb79938d832f604f20542497f60f8cc41f46a0525d837460755f975bd26202" + "evmDeployedBytecodeHash": "0xeddc0ccbb35e793b656292fc8ee22ae62a26f496568d8ac56eb98a90b35e8e27" }, { "contractName": "l1-contracts/SemVer", "zkBytecodeHash": "0x0100000733c2d2368df4bff2f15475d1cfc5db39cbe975f364b403b0932b99a0", "zkBytecodePath": "/l1-contracts/zkout/SemVer.sol/SemVer.json", - "evmBytecodeHash": "0x69b82664ac0eff045d6ca1e34974387a3a856a46578b1fa6dafd2ac3020e613c", + "evmBytecodeHash": "0xf08dd5a6dd5c281c835d5ffc5c774a1baf62ab73b574c557f64c03e36495dd38", "evmBytecodePath": "/l1-contracts/out/SemVer.sol/SemVer.json", - "evmDeployedBytecodeHash": "0xe1f70baa7b9a10beea537323699161a613a10cfd2f5abdccf7eb34e7e2b5eb51" + "evmDeployedBytecodeHash": "0xd70e9a3af34279c382342c968c063ce768f83b9be3e62b32c2c6d34b85fc1243" }, { "contractName": "l1-contracts/ServerNotifier", @@ -1387,105 +1451,105 @@ "contractName": "l1-contracts/SignedMath", "zkBytecodeHash": "0x010000073b4ff9ba2f6ae737833f673602e0c344bb2ef794f5303b4edb03c959", "zkBytecodePath": "/l1-contracts/zkout/SignedMath.sol/SignedMath.json", - "evmBytecodeHash": "0xd1539f05abc9be582f7fd40681d23cf512e79a64c3d1a631f9edfe38780747a7", + "evmBytecodeHash": "0xf32d7b5054929ac3711eef114f00eca1dd4af832c4e23400bc3b4916f7c9f559", "evmBytecodePath": "/l1-contracts/out/SignedMath.sol/SignedMath.json", - "evmDeployedBytecodeHash": "0x59c1227d9c5cf1f3564cafc87031f44398aa3879bc42585902586cc9c4b0cbb1" + "evmDeployedBytecodeHash": "0x5ea8bb54056a1d2a7caa99c5a1501f98670de48a0b32c364e11896790087aa61" }, { "contractName": "l1-contracts/SignedMathUpgradeable", "zkBytecodeHash": "0x01000007e11221e38bbf4cc6f25d26978bb65379e7c9bb0773f04bf4291bc30f", "zkBytecodePath": "/l1-contracts/zkout/SignedMathUpgradeable.sol/SignedMathUpgradeable.json", - "evmBytecodeHash": "0x4a6177ee9326e3f8062a17735efeecafd301cc501c24196d1cb43221eb4bc67a", + "evmBytecodeHash": "0x818c83d7b6b72b089681baab73e78a933966e7e9a61c8f59d5b75a6cb9a1877b", "evmBytecodePath": "/l1-contracts/out/SignedMathUpgradeable.sol/SignedMathUpgradeable.json", - "evmDeployedBytecodeHash": "0x103a3cc591ce8bd1bbd30680ef2096bd064eba508a86f3018087d8f4f2ee177a" + "evmDeployedBytecodeHash": "0xd2b922659cd8c175293701d809ec327fa64fab34d59877a76349fc37842a56f5" }, { "contractName": "l1-contracts/StorageSlot", "zkBytecodeHash": "0x01000007abfdd8447cec54942b782815aaa2999cbd1fcf9e4805abdd0acbd8bd", "zkBytecodePath": "/l1-contracts/zkout/StorageSlot.sol/StorageSlot.json", - "evmBytecodeHash": "0x4f21ecace17e117d55148f15fe26ab474d70f2b20057eb87321350a3e7ddec91", + "evmBytecodeHash": "0x6a88e7801124f3bf6d7b1ec2c7f0128fa45678f0edb6786c4fa809da13b211e2", "evmBytecodePath": "/l1-contracts/out/StorageSlot.sol/StorageSlot.json", - "evmDeployedBytecodeHash": "0xebe440b3c783cfdfc4f45dbc5760ba83e9deeb84d67617976ef3f13963860202" + "evmDeployedBytecodeHash": "0xa59409095e472756767141e1bc2c08bd38e8bc8a65005b00f59a015668ec06e9" }, { "contractName": "l1-contracts/Strings", "zkBytecodeHash": "0x010000075a354ac6a9ece550e8d3e7379e78946a4b0fcadea45df8f4e500a4b7", "zkBytecodePath": "/l1-contracts/zkout/Strings.sol/Strings.json", - "evmBytecodeHash": "0x58c632496fb4e72f86cbd208c70e9613accfcd28adf4d7744ee7165bde1fb9fc", + "evmBytecodeHash": "0x260cf1c0b4cb9b766b831f17743639102cc37b94b2f5a5a7d69784a49e1b81bd", "evmBytecodePath": "/l1-contracts/out/Strings.sol/Strings.json", - "evmDeployedBytecodeHash": "0x83ef366ca7c636a1360ca8ac33cf80e4bedc8bfaa62f4397064751b005d22b33" + "evmDeployedBytecodeHash": "0x14051bffe48a07231c02392a455a98d4e566fb4f05c27a2ded8b43f15f2e86a6" }, { "contractName": "l1-contracts/StringsUpgradeable", "zkBytecodeHash": "0x01000007584a040e5c5918b86d8f91401f32a9412673bc604492a5181e38cc25", "zkBytecodePath": "/l1-contracts/zkout/StringsUpgradeable.sol/StringsUpgradeable.json", - "evmBytecodeHash": "0x34cb6de5b5aa20f3f4f6ccd48308fdb86e53e2684513d7a51b6f4224e7d1fc7f", + "evmBytecodeHash": "0x4a5a96242c801413d8dea55989282b9553e57958e31db81f7d5caac57cfbcb41", "evmBytecodePath": "/l1-contracts/out/StringsUpgradeable.sol/StringsUpgradeable.json", - "evmDeployedBytecodeHash": "0xef6f42791be03f203def1f5cae725ac78bc2ee8cc919539b2a241dc593440355" + "evmDeployedBytecodeHash": "0xca8ca1bef8f32079de246ce655cfee1f79c0aefa18346894372661a57aa5f1d1" }, { "contractName": "l1-contracts/SystemContractsCaller", - "zkBytecodeHash": "0x01000007c076e31990f39e6fc3a3f75ebf0a996b0569e7fb3959138fe9171a35", + "zkBytecodeHash": "0x01000007db6068b8970aa27ecfc64b2d3a7f0d4f155b398090320a42ee18d27b", "zkBytecodePath": "/l1-contracts/zkout/SystemContractsCaller.sol/SystemContractsCaller.json", - "evmBytecodeHash": "0x44fe8239010ab0e654b22798784acf20c757e696601f341c6264dd3e88e8e32c", + "evmBytecodeHash": "0xa34c6e06f334b975b2a6e93f57d13c3d844fc6ca316be7fc69f5ba33b8e63c45", "evmBytecodePath": "/l1-contracts/out/SystemContractsCaller.sol/SystemContractsCaller.json", - "evmDeployedBytecodeHash": "0x687e7c4d36fe7c1440cdb911f206c1435a0fbd2ba1ea86a399d56cb74a0d34bd" + "evmDeployedBytecodeHash": "0x7eaac6b60a376307d85e07a1deed472fb54a301182ea0bef893d379c10e16f41" }, { "contractName": "l1-contracts/Utils", - "zkBytecodeHash": "0x010000074ec6c812a8c90f50cfa47f820f4c3730b109db2082d66d9dc256dc2a", + "zkBytecodeHash": "0x01000007d85c9da998a333a019772567c346b3f3565918dc11fd7fe8bef17644", "zkBytecodePath": "/l1-contracts/zkout/SystemContractsCaller.sol/Utils.json", - "evmBytecodeHash": "0x097909811c04d6f8c68cc0a5dc184dcc30344ec20d203a7991e5c767ca80c23b", + "evmBytecodeHash": "0xb80dd1f858da1ca533866c6e2ad9a927d12a1062f2097588aa6dcdc912d50060", "evmBytecodePath": "/l1-contracts/out/SystemContractsCaller.sol/Utils.json", - "evmDeployedBytecodeHash": "0x3d4fcb77d3739117a9886383f1e60a972805c7ba139606de7ac2a5d0f271ca18" + "evmDeployedBytecodeHash": "0x8eebc2dd950b8d53607497946474c1587f9ba4d004e3bb5cf4493b6e62757779" }, { "contractName": "l1-contracts/TestnetVerifier", - "zkBytecodeHash": "0x010000dddae4c0af9488e987126f63d930c1410bd910f2d77c028915da9f1d60", + "zkBytecodeHash": "0x010000dd8cfa46f9b90d09532a13669d4fcf2bbcd8356879fe69ec1f7cabb3f7", "zkBytecodePath": "/l1-contracts/zkout/TestnetVerifier.sol/TestnetVerifier.json", - "evmBytecodeHash": "0x32f36a7c8224ea7551605d5bb16733f583f87ef842088c80f6a736e3a1fea16d", + "evmBytecodeHash": "0x1b38b084bf6dbd883856c3567168a272b7aa392cefdd90fed0614ee34aec9384", "evmBytecodePath": "/l1-contracts/out/TestnetVerifier.sol/TestnetVerifier.json", - "evmDeployedBytecodeHash": "0x6b0ca478943c7fb5e86ea20a9188eabf4e1c5df578b512fe02c45a9f54d46a29" + "evmDeployedBytecodeHash": "0xfdbe1cff826c24ab2c73cc440b287c588d71f9caca8b9e644e7296aacffb5552" }, { "contractName": "l1-contracts/TransactionValidator", - "zkBytecodeHash": "0x01000007c39fdb64b7521411150a2b7e5c98d1685ff9492a7968083d8a8b234c", + "zkBytecodeHash": "0x010000074e1380b982db8c544f1d021af3bd9be4b334ec2879afc2f762cbaea4", "zkBytecodePath": "/l1-contracts/zkout/TransactionValidator.sol/TransactionValidator.json", - "evmBytecodeHash": "0x636579038e7d878f7ea65861a629824214213719ce1cf918f7b5033573533589", + "evmBytecodeHash": "0x30822784be7a7e27a289924e128fce6234fc838f2375154da335b4d676a6a6a0", "evmBytecodePath": "/l1-contracts/out/TransactionValidator.sol/TransactionValidator.json", - "evmDeployedBytecodeHash": "0xf5402b3e3a7b48b69e91b0f0a21e019203e359bd4fd5b8b3fb907d34f0d965c5" + "evmDeployedBytecodeHash": "0x70c8ea16b5f93973ec6ac0791c9f05330ef5c166a6923236769f59160f600db8" }, { "contractName": "l1-contracts/TransitionaryOwner", "zkBytecodeHash": "0x0100005bd2f3ba147ba7ae7b091665249e47524c2c777a5eef48df88474f0837", "zkBytecodePath": "/l1-contracts/zkout/TransitionaryOwner.sol/TransitionaryOwner.json", - "evmBytecodeHash": "0x0b0e968e8b3a3499d6a64465c65caf0e2ee58f0d9822c6a61555d0b4c87e3867", + "evmBytecodeHash": "0x0dc8b31f932a145a57bb83f3979dd77aac18b4ca41f6a51042e8a884db8ecbbc", "evmBytecodePath": "/l1-contracts/out/TransitionaryOwner.sol/TransitionaryOwner.json", - "evmDeployedBytecodeHash": "0xe8e47e802c9f28bc2c2a33e861e00a3d3a77690ec78ec0387f77e90f04e8d949" + "evmDeployedBytecodeHash": "0x95b67c943f9be58a583027f35e28a30fb08bead11656a4fa8d87abcd86cff16a" }, { "contractName": "l1-contracts/TransparentUpgradeableProxy", "zkBytecodeHash": "0x01000149593c20ec28bef707d918a4f963887591dbe8278c730e860abf0fdb64", "zkBytecodePath": "/l1-contracts/zkout/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json", - "evmBytecodeHash": "0xeff8a1d98c67d773530551ca091731243869cec1e637b9e35a773dc9ee1ec3d3", + "evmBytecodeHash": "0x527b02d640edbddc538fb5fadb87568647c87feb492d519c7a40577715f5bfce", "evmBytecodePath": "/l1-contracts/out/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json", - "evmDeployedBytecodeHash": "0x233c67ec54c6d38b0fc1b57546483b2849e61308832443513d521c4188ff63d7" + "evmDeployedBytecodeHash": "0xfb724b73932f964782cb67362802379bbb434067ae41ae0022c6c8362b5b96c0" }, { "contractName": "l1-contracts/UncheckedMath", "zkBytecodeHash": "0x010000077758666a5353fc097b50d4715d4d63bdcfd0fc93ca7a9dae308c8f15", "zkBytecodePath": "/l1-contracts/zkout/UncheckedMath.sol/UncheckedMath.json", - "evmBytecodeHash": "0xd11762496af656d6431ef7542844802f76d84004de4648867dd3ba1575ab182e", + "evmBytecodeHash": "0x606df52e63e0b61aad319c2207c80130bc23e6e6dae297f5660cb7fae25ea092", "evmBytecodePath": "/l1-contracts/out/UncheckedMath.sol/UncheckedMath.json", - "evmDeployedBytecodeHash": "0x36e00ecf44abe9616f66bccc0dc0dca5c961a21e1df9c45590357cded6401b75" + "evmDeployedBytecodeHash": "0xee54fb97cc5f2e9115024026ddcb7ce21d5f05cacbec308a72824365cab9549d" }, { "contractName": "l1-contracts/UnsafeBytes", "zkBytecodeHash": "0x0100000705aab131e66b26d5976a28c7f8616e43bbaa8d162c637f6f412c8259", "zkBytecodePath": "/l1-contracts/zkout/UnsafeBytes.sol/UnsafeBytes.json", - "evmBytecodeHash": "0x0e43251a01dea60598d935f22a05c7b5afc2e769f049d035d8cfe36ab6f88e6a", + "evmBytecodeHash": "0x0e8babf9b5b43f361f2e4014d62051f073ddc0a9f8980ff4f50baa773f0c03b2", "evmBytecodePath": "/l1-contracts/out/UnsafeBytes.sol/UnsafeBytes.json", - "evmDeployedBytecodeHash": "0x97b15b9cf3a912e69c3f08a5c2dbe0ec352ba2283f230b17e39c2eaa0a8244ca" + "evmDeployedBytecodeHash": "0x5a525f33ea2a688d8fe756241d4e95e7827b4d4762b66db6829ca6a66a225c10" }, { "contractName": "l1-contracts/UpgradeStageValidator", @@ -1499,9 +1563,17 @@ "contractName": "l1-contracts/UpgradeableBeacon", "zkBytecodeHash": "0x010000674dd9c2b44a5c02408bda04df734b258d1c6ee9e07f5a6904a13d27fc", "zkBytecodePath": "/l1-contracts/zkout/UpgradeableBeacon.sol/UpgradeableBeacon.json", - "evmBytecodeHash": "0x16e9b6d2d2ff2d4f09e041993b5bb29902e10dc154491fac8e1dcd8cd0faf50e", + "evmBytecodeHash": "0x4ec5adf400db9189a771cd955943210610075f6fa49149202129367ac4b948e3", "evmBytecodePath": "/l1-contracts/out/UpgradeableBeacon.sol/UpgradeableBeacon.json", - "evmDeployedBytecodeHash": "0xba4bfb9d8fdb5e5690b9c2e10d68acdd886790840a3da73771993f5ddd9cf23f" + "evmDeployedBytecodeHash": "0x5b3cb24a6eb49023e0ac467fdd003b25e8ddcae281e067d794edd02dd3132367" + }, + { + "contractName": "l1-contracts/UpgradeableBeaconDeployer", + "zkBytecodeHash": "0x010000536f6fdf16765d21be8c73f36f73c606878c7df9081f5abb15e028fd2e", + "zkBytecodePath": "/l1-contracts/zkout/UpgradeableBeaconDeployer.sol/UpgradeableBeaconDeployer.json", + "evmBytecodeHash": "0x07280fd18519554738710897d15f9dfb5d822e3f552a71da65a08a7a0b813dc4", + "evmBytecodePath": "/l1-contracts/out/UpgradeableBeaconDeployer.sol/UpgradeableBeaconDeployer.json", + "evmDeployedBytecodeHash": "0xb49702bc201fa4a71ef264b123dd7eeff23e4aabda296d19ee6409463d294967" }, { "contractName": "l1-contracts/ValidatorTimelock", @@ -1529,89 +1601,97 @@ }, { "contractName": "l1-contracts/Create2AndTransfer", - "evmBytecodeHash": "0xfebf807006627544db6eaf474508d47b688adb3d5195b5071b3bf34ead2f81b6", + "evmBytecodeHash": "0x598759953f0ac2961d9f2c462a452d7d1232ee715df0a233125f17fdccf9afec", "evmBytecodePath": "/l1-contracts/out/Create2AndTransfer.sol/Create2AndTransfer.json", - "evmDeployedBytecodeHash": "0x7e0b5656d9ac680e5d3ad8606eb48aca581a8f125a115c6c01e7cbb7ac068bd7", + "evmDeployedBytecodeHash": "0xf2cbf053e95d28bc522ea34a249837d8791e4310f1005f5f0558ec93263c37bb", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/MockERC20", + "evmBytecodeHash": "0x71cdfca8fbccd49a36e2310efc21ac79451ca9c56ad3d4e7747e20da2d461f85", + "evmBytecodePath": "/l1-contracts/out/MockERC20.sol/MockERC20.json", + "evmDeployedBytecodeHash": "0x1b36420747ae9ccd1965a73e63acfc12dea82e9b2e3668cbdaf854c24f6adef6", "zkBytecodeHash": null, "zkBytecodePath": null }, { - "contractName": "l1-contracts/StdConstants", - "evmBytecodeHash": "0xa204555ddb5b7aae6f985aab731d8bbef3cc8dbd4eb3cd00f003badc5a71bcfc", - "evmBytecodePath": "/l1-contracts/out/StdConstants.sol/StdConstants.json", - "evmDeployedBytecodeHash": "0xcdfd7fa41f81f94facaa07c41ba2ef87058b72fd3c81dd3f3b6145e061faa0dd", + "contractName": "l1-contracts/MockERC721", + "evmBytecodeHash": "0x87d1234673bca9c024a29fc4d8a19712d9f78a6ce53753dd01b2c8c46618e0dc", + "evmBytecodePath": "/l1-contracts/out/MockERC721.sol/MockERC721.json", + "evmDeployedBytecodeHash": "0x6e41fe5c01b882e5e0f4f730e0051a0d539d2ecf3fedc2089d8c9ecd318141ef", "zkBytecodeHash": null, "zkBytecodePath": null }, { "contractName": "l1-contracts/stdError", - "evmBytecodeHash": "0xc665c6f2163557700dc7cd809615cf2fcf70af3400a150cb9f68fbb8daa643e2", + "evmBytecodeHash": "0x7848b953c528d9e8d9beba88bd77f6e42eed29e7fb38d02ed20788399b88ce7c", "evmBytecodePath": "/l1-contracts/out/StdError.sol/stdError.json", - "evmDeployedBytecodeHash": "0xae396a9f2444f6ca903c33b92aeabe1a6e8f5d74a30ccf57fb9730890b8c353a", + "evmDeployedBytecodeHash": "0xb1e256c0a60f2a471c74838e155a8d999abccf2c90d4b4e85061a416fb9d3372", "zkBytecodeHash": null, "zkBytecodePath": null }, { "contractName": "l1-contracts/stdJson", - "evmBytecodeHash": "0x4e218a599b6fa65d3e466fba80556fd94229593a741f7490b5f5360a310c938d", + "evmBytecodeHash": "0xbf26e0a20db5296c2f380204e56546ead8563fb14c7c2a1841a72db4a5c8b026", "evmBytecodePath": "/l1-contracts/out/StdJson.sol/stdJson.json", - "evmDeployedBytecodeHash": "0xba647b6d04cc8c8e7ac2622358adcefb72176dedb898cf97006a4f2a6f5e1295", + "evmDeployedBytecodeHash": "0xf0cbe5c5efd0c6c9c4a6cabbd92f9001559526a0c4ff8643bb2554aff08aec3d", "zkBytecodeHash": null, "zkBytecodePath": null }, { "contractName": "l1-contracts/stdMath", - "evmBytecodeHash": "0xda78553c78a5f4d3bcd8bf198b63e9e5fba3b22efc22ba73f31e5e19476d0aa6", + "evmBytecodeHash": "0x8d905240b577040c40d650cbe89cbaafd8d3d57051671e3b18b0a72f3efd1a35", "evmBytecodePath": "/l1-contracts/out/StdMath.sol/stdMath.json", - "evmDeployedBytecodeHash": "0x4ceda3e6f661699d507e56828120123765e74d00dada868fd2f3be962286970d", + "evmDeployedBytecodeHash": "0x65d204f820b07e3e16d3a2929ebb6dbdecf840c6d03d9f1dac8402dfb997f3cb", "zkBytecodeHash": null, "zkBytecodePath": null }, { "contractName": "l1-contracts/stdStorage", - "evmBytecodeHash": "0xe73c9bc14f4be28ffe7db3da3f3c9ee2f75bef6bdf5048b47b5817a8e67301c5", + "evmBytecodeHash": "0x36d3b35f5db1553e895a31a757ac8c31689d5d56900bc77917b586ce5a8559e2", "evmBytecodePath": "/l1-contracts/out/StdStorage.sol/stdStorage.json", - "evmDeployedBytecodeHash": "0x8e8eafa5e1ed36eb25521a05c73f6eb2e1651a56a0d8fd923dbd6ef096bc2539", + "evmDeployedBytecodeHash": "0xbba65d20ca13fc1a3cc8faab354e8720905cb8927daff99fe32d2b8b89a0a953", "zkBytecodeHash": null, "zkBytecodePath": null }, { "contractName": "l1-contracts/stdStorageSafe", - "evmBytecodeHash": "0xf2fb194607aa51280838aecb0a368ecdd4027c22f83a2189f0ee90e2f50e6cf3", + "evmBytecodeHash": "0xaac91bc62c95ca7192d2fbeef8554215afb62491c57c9d988eccde5758e517e7", "evmBytecodePath": "/l1-contracts/out/StdStorage.sol/stdStorageSafe.json", - "evmDeployedBytecodeHash": "0xffab4afc5be82e2526f782907511e29053f316e21720c186b378d9d023740fa5", + "evmDeployedBytecodeHash": "0xf8d49b420adfc9b212f26f562c4effaa7b81068c28adb3d9d1cff35692b9cb4c", "zkBytecodeHash": null, "zkBytecodePath": null }, { "contractName": "l1-contracts/StdStyle", - "evmBytecodeHash": "0xf139d3e0715a6f0ad32e7ed62f4b8d16fd9c0a98688655cf99a877107e0320be", + "evmBytecodeHash": "0xc20c289a4923b14ea85dbbd74ad3c140af365f7eb9830da01bc42f33fd7ef9c6", "evmBytecodePath": "/l1-contracts/out/StdStyle.sol/StdStyle.json", - "evmDeployedBytecodeHash": "0xd721ed6a39216cce8f9c762756fe81c00b1e98abc25b5b9b44901dfb472c83d4", + "evmDeployedBytecodeHash": "0x0124333f6f9b924228fdb13c984c85f7d71af11cdb92b2f294aac742e9750c71", "zkBytecodeHash": null, "zkBytecodePath": null }, { "contractName": "l1-contracts/stdToml", - "evmBytecodeHash": "0x78fd33c1b97e99fe8a23f8bdf7a364426db74b403f575fe7ddb4f6b41d5c76ea", + "evmBytecodeHash": "0x51e11c7b158e06f0fda283474cf8f3764a3e277947dcb51d57ddad310195c0f2", "evmBytecodePath": "/l1-contracts/out/StdToml.sol/stdToml.json", - "evmDeployedBytecodeHash": "0xf019d02fc84f1ec73a3bed891fa20cc550f68e2975d05021ecf2fb569f884714", + "evmDeployedBytecodeHash": "0x2ad692a252e8403bcc521a0c4bf8e4c0d6ff930dcf6055a15677dd88c7bb56f3", "zkBytecodeHash": null, "zkBytecodePath": null }, { "contractName": "l1-contracts/console", - "evmBytecodeHash": "0x16e8e6e585a7711fe2b2c1502fe7527ed2cd93c3cf540a3e33965c52f920f870", + "evmBytecodeHash": "0xa8c183e9ab7351489565905ec75bc5871acecb2d3c44623ced7d94ce1e1d62ae", "evmBytecodePath": "/l1-contracts/out/console.sol/console.json", - "evmDeployedBytecodeHash": "0x05a5cc84d188bc5c8f296d9c854d7039dd246ef6cd5174379cf7dcf924de2e54", + "evmDeployedBytecodeHash": "0x38d67331eb5dbdd909129319308118dc8062300983ec39c44d860e84207dd19b", "zkBytecodeHash": null, "zkBytecodePath": null }, { "contractName": "l1-contracts/safeconsole", - "evmBytecodeHash": "0x8d4a6c561bee25898bd6a5ba365c5eedf9e0a56fc74dea5486c64a59496431f3", + "evmBytecodeHash": "0x027ae54d3f677e5ebec78ad6ad545cd6a5df45108332dea5980a4667f44da216", "evmBytecodePath": "/l1-contracts/out/safeconsole.sol/safeconsole.json", - "evmDeployedBytecodeHash": "0xe8fbe25dd4a1388b6b3556d52ad8ac9ef7b61f03d1c64371803c3338e725c71e", + "evmDeployedBytecodeHash": "0x56ef699b72275e3f4e8be802533774f934a72de82d32da63e1a70b76e361966e", "zkBytecodeHash": null, "zkBytecodePath": null }, diff --git a/l1-contracts/.env b/l1-contracts/.env index ba743f817e..946080b2c6 100644 --- a/l1-contracts/.env +++ b/l1-contracts/.env @@ -59,3 +59,5 @@ DEPLOY_GATEWAY_TX_FILTERER_INPUT=/script-config/deploy-gateway-tx-filterer.toml DEPLOY_GATEWAY_TX_FILTERER_OUTPUT=/script-out/deploy-gateway-tx-filterer.toml GATEWAY_VOTE_PREPARATION_INPUT=/script-config/gateway-vote-preparation.toml GATEWAY_VOTE_PREPARATION_OUTPUT=/script-out/gateway-vote-preparation.toml +ZK_OS_V28_1_UPGRADE_ECOSYSTEM_INPUT=/script-config/zk-os-v28-1-upgrade-ecosystem.toml +ZK_OS_V28_1_UPGRADE_ECOSYSTEM_OUTPUT=/script-out/zk-os-v28-1-upgrade-ecosystem.toml diff --git a/l1-contracts/contracts/bridge/asset-router/AssetRouterBase.sol b/l1-contracts/contracts/bridge/asset-router/AssetRouterBase.sol index fdaad99749..01d5bc2b79 100644 --- a/l1-contracts/contracts/bridge/asset-router/AssetRouterBase.sol +++ b/l1-contracts/contracts/bridge/asset-router/AssetRouterBase.sol @@ -25,15 +25,6 @@ import {INativeTokenVault} from "../ntv/INativeTokenVault.sol"; abstract contract AssetRouterBase is IAssetRouterBase, Ownable2StepUpgradeable, PausableUpgradeable { using SafeERC20 for IERC20; - /// @dev Bridgehub smart contract that is used to operate with L2 via asynchronous L2 <-> L1 communication. - IBridgehub public immutable override BRIDGE_HUB; - - /// @dev Chain ID of L1 for bridging reasons - uint256 public immutable L1_CHAIN_ID; - - /// @dev Chain ID of Era for legacy reasons - uint256 public immutable ERA_CHAIN_ID; - /// @dev Maps asset ID to address of corresponding asset handler. /// @dev Tracks the address of Asset Handler contracts, where bridged funds are locked for each asset. /// @dev P.S. this liquidity was locked directly in SharedBridge before. @@ -55,20 +46,12 @@ abstract contract AssetRouterBase is IAssetRouterBase, Ownable2StepUpgradeable, /// @notice Checks that the message sender is the bridgehub. modifier onlyBridgehub() { - if (msg.sender != address(BRIDGE_HUB)) { + if (msg.sender != address(_bridgehub())) { revert Unauthorized(msg.sender); } _; } - /// @dev Contract is expected to be used as proxy implementation. - /// @dev Initialize the implementation to prevent Parity hack. - constructor(uint256 _l1ChainId, uint256 _eraChainId, IBridgehub _bridgehub) { - L1_CHAIN_ID = _l1ChainId; - ERA_CHAIN_ID = _eraChainId; - BRIDGE_HUB = _bridgehub; - } - /// @inheritdoc IAssetRouterBase function setAssetHandlerAddressThisChain( bytes32 _assetRegistrationData, @@ -190,4 +173,10 @@ abstract contract AssetRouterBase is IAssetRouterBase, Ownable2StepUpgradeable, function unpause() external onlyOwner { _unpause(); } + + function _bridgehub() internal view virtual returns (IBridgehub); + + function _l1ChainId() internal view virtual returns (uint256); + + function _eraChainId() internal view virtual returns (uint256); } diff --git a/l1-contracts/contracts/bridge/asset-router/L1AssetRouter.sol b/l1-contracts/contracts/bridge/asset-router/L1AssetRouter.sol index 895c701767..7e09670369 100644 --- a/l1-contracts/contracts/bridge/asset-router/L1AssetRouter.sol +++ b/l1-contracts/contracts/bridge/asset-router/L1AssetRouter.sol @@ -36,6 +36,12 @@ import {IL1AssetDeploymentTracker} from "../interfaces/IL1AssetDeploymentTracker contract L1AssetRouter is AssetRouterBase, IL1AssetRouter, ReentrancyGuard { using SafeERC20 for IERC20; + /// @dev Bridgehub smart contract that is used to operate with L2 via asynchronous L2 <-> L1 communication. + IBridgehub public immutable override BRIDGE_HUB; + + /// @dev Chain ID of Era for legacy reasons + uint256 public immutable ERA_CHAIN_ID; + /// @dev The address of the WETH token on L1. address public immutable override L1_WETH_TOKEN; @@ -94,8 +100,10 @@ contract L1AssetRouter is AssetRouterBase, IL1AssetRouter, ReentrancyGuard { address _l1Nullifier, uint256 _eraChainId, address _eraDiamondProxy - ) reentrancyGuardInitializer AssetRouterBase(block.chainid, _eraChainId, IBridgehub(_bridgehub)) { + ) reentrancyGuardInitializer { _disableInitializers(); + BRIDGE_HUB = IBridgehub(_bridgehub); + ERA_CHAIN_ID = _eraChainId; L1_WETH_TOKEN = _l1WethAddress; ERA_DIAMOND_PROXY = _eraDiamondProxy; L1_NULLIFIER = IL1Nullifier(_l1Nullifier); @@ -673,4 +681,20 @@ contract L1AssetRouter is AssetRouterBase, IL1AssetRouter, ReentrancyGuard { function l2BridgeAddress(uint256 _chainId) external view override returns (address) { return L1_NULLIFIER.l2BridgeAddress(_chainId); } + + function L1_CHAIN_ID() external view override returns (uint256) { + return block.chainid; + } + + function _bridgehub() internal view override returns (IBridgehub) { + return BRIDGE_HUB; + } + + function _l1ChainId() internal view override returns (uint256) { + return block.chainid; + } + + function _eraChainId() internal view override returns (uint256) { + return ERA_CHAIN_ID; + } } diff --git a/l1-contracts/contracts/bridge/asset-router/L2AssetRouter.sol b/l1-contracts/contracts/bridge/asset-router/L2AssetRouter.sol index c9acde77cc..043dc53bf0 100644 --- a/l1-contracts/contracts/bridge/asset-router/L2AssetRouter.sol +++ b/l1-contracts/contracts/bridge/asset-router/L2AssetRouter.sol @@ -15,7 +15,7 @@ import {IBridgehub} from "../../bridgehub/IBridgehub.sol"; import {AddressAliasHelper} from "../../vendor/AddressAliasHelper.sol"; import {ReentrancyGuard} from "../../common/ReentrancyGuard.sol"; -import {L2_BRIDGEHUB_ADDR, L2_NATIVE_TOKEN_VAULT_ADDR} from "../../common/l2-helpers/L2ContractAddresses.sol"; +import {L2_NATIVE_TOKEN_VAULT_ADDR, L2_COMPLEX_UPGRADER_ADDR} from "../../common/l2-helpers/L2ContractAddresses.sol"; import {L2ContractHelper} from "../../common/l2-helpers/L2ContractHelper.sol"; import {DataEncoding} from "../../common/libraries/DataEncoding.sol"; import {AmountMustBeGreaterThanZero, AssetIdNotSupported, EmptyAddress, InvalidCaller, TokenNotLegacy} from "../../common/L1ContractErrors.sol"; @@ -24,19 +24,41 @@ import {AmountMustBeGreaterThanZero, AssetIdNotSupported, EmptyAddress, InvalidC /// @custom:security-contact security@matterlabs.dev /// @notice The "default" bridge implementation for the ERC20 tokens. Note, that it does not /// support any custom token logic, i.e. rebase tokens' functionality is not supported. +/// @dev Important: L2 contracts are not allowed to have any immutable variables. This is needed for compatibility with ZKsyncOS. contract L2AssetRouter is AssetRouterBase, IL2AssetRouter, ReentrancyGuard { - /// @dev The address of the L2 legacy shared bridge. - address public immutable L2_LEGACY_SHARED_BRIDGE; + /// @dev Bridgehub smart contract that is used to operate with L2 via asynchronous L2 <-> L1 communication. + /// @dev Note, that while it is a simple storage variable, the name is in capslock for the backward compatibility with + /// the old version where it was an immutable. + IBridgehub public override BRIDGE_HUB; - /// @dev The asset id of the base token. - bytes32 public immutable BASE_TOKEN_ASSET_ID; + /// @dev Chain ID of L1 for bridging reasons. + /// @dev Note, that while it is a simple storage variable, the name is in capslock for the backward compatibility with + /// the old version where it was an immutable. + uint256 public L1_CHAIN_ID; + + /// @dev Chain ID of Era for legacy reasons. + /// @dev Note, that while it is a simple storage variable, the name is in capslock for the backward compatibility with + /// the old version where it was an immutable. + uint256 public eraChainId; /// @dev The address of the L1 asset router counterpart. - address public immutable override L1_ASSET_ROUTER; + /// @dev Note, that while it is a simple storage variable, the name is in capslock for the backward compatibility with + /// the old version where it was an immutable. + address public L1_ASSET_ROUTER; + + /// @dev The address of the L2 legacy shared bridge. + /// @dev Note, that while it is a simple storage variable, the name is in capslock for the backward compatibility with + /// the old version where it was an immutable. + address public L2_LEGACY_SHARED_BRIDGE; + + /// @dev The asset id of the base token. + /// @dev Note, that while it is a simple storage variable, the name is in capslock for the backward compatibility with + /// the old version where it was an immutable. + bytes32 public BASE_TOKEN_ASSET_ID; /// @notice Checks that the message sender is the L1 Asset Router. modifier onlyAssetRouterCounterpart(uint256 _originChainId) { - if (_originChainId == L1_CHAIN_ID) { + if (_originChainId == _l1ChainId()) { // Only the L1 Asset Router counterpart can initiate and finalize the deposit. if (AddressAliasHelper.undoL1ToL2Alias(msg.sender) != L1_ASSET_ROUTER) { revert InvalidCaller(msg.sender); @@ -49,7 +71,7 @@ contract L2AssetRouter is AssetRouterBase, IL2AssetRouter, ReentrancyGuard { /// @notice Checks that the message sender is the L1 Asset Router. modifier onlyAssetRouterCounterpartOrSelf(uint256 _chainId) { - if (_chainId == L1_CHAIN_ID) { + if (_chainId == _l1ChainId()) { // Only the L1 Asset Router counterpart can initiate and finalize the deposit. if ((AddressAliasHelper.undoL1ToL2Alias(msg.sender) != L1_ASSET_ROUTER) && (msg.sender != address(this))) { revert InvalidCaller(msg.sender); @@ -75,26 +97,59 @@ contract L2AssetRouter is AssetRouterBase, IL2AssetRouter, ReentrancyGuard { _; } - /// @dev Disable the initialization to prevent Parity hack. - /// @dev this contract is deployed in the L2GenesisUpgrade, and is meant as direct deployment without a proxy. - /// @param _l1AssetRouter The address of the L1 Bridge contract. - constructor( + modifier onlyUpgrader() { + if (msg.sender != L2_COMPLEX_UPGRADER_ADDR) { + revert InvalidCaller(msg.sender); + } + _; + } + + /// @notice Initializes the contract + /// @dev This function is used to initialize the contract with the initial values. + /// @dev This function is called both for new chains. + /// @param _l1ChainId The chain id of L1. + /// @param _eraChainId The chain id of Era. + /// @param _l1AssetRouter The address of the L1 asset router. + /// @param _legacySharedBridge The address of the L2 legacy shared bridge. + /// @param _baseTokenAssetId The asset id of the base token. + /// @param _aliasedOwner The address of the owner of the contract. + function initL2( uint256 _l1ChainId, uint256 _eraChainId, address _l1AssetRouter, address _legacySharedBridge, bytes32 _baseTokenAssetId, address _aliasedOwner - ) AssetRouterBase(_l1ChainId, _eraChainId, IBridgehub(L2_BRIDGEHUB_ADDR)) reentrancyGuardInitializer { + ) public reentrancyGuardInitializer onlyUpgrader { + _disableInitializers(); + updateL2(_l1ChainId, _eraChainId, _l1AssetRouter, _legacySharedBridge, _baseTokenAssetId); + _setAssetHandler(_baseTokenAssetId, L2_NATIVE_TOKEN_VAULT_ADDR); + _transferOwnership(_aliasedOwner); + } + + /// @notice Updates the contract. + /// @dev This function is used to initialize the new implementation of L2AssetRouter on existing chains during + /// the upgrade. + /// @param _l1ChainId The chain id of L1. + /// @param _eraChainId The chain id of Era. + /// @param _l1AssetRouter The address of the L1 asset router. + /// @param _legacySharedBridge The address of the L2 legacy shared bridge. + /// @param _baseTokenAssetId The asset id of the base token. + function updateL2( + uint256 _l1ChainId, + uint256 _eraChainId, + address _l1AssetRouter, + address _legacySharedBridge, + bytes32 _baseTokenAssetId + ) public onlyUpgrader { L2_LEGACY_SHARED_BRIDGE = _legacySharedBridge; if (_l1AssetRouter == address(0)) { revert EmptyAddress(); } + L1_CHAIN_ID = _l1ChainId; L1_ASSET_ROUTER = _l1AssetRouter; - _setAssetHandler(_baseTokenAssetId, L2_NATIVE_TOKEN_VAULT_ADDR); BASE_TOKEN_ASSET_ID = _baseTokenAssetId; - _disableInitializers(); - _transferOwnership(_aliasedOwner); + eraChainId = _eraChainId; } /// @inheritdoc IL2AssetRouter @@ -136,15 +191,15 @@ contract L2AssetRouter is AssetRouterBase, IL2AssetRouter, ReentrancyGuard { public payable override(AssetRouterBase, IAssetRouterBase) - onlyAssetRouterCounterpartOrSelf(L1_CHAIN_ID) + onlyAssetRouterCounterpartOrSelf(_l1ChainId()) nonReentrant { if (_assetId == BASE_TOKEN_ASSET_ID) { revert AssetIdNotSupported(BASE_TOKEN_ASSET_ID); } - _finalizeDeposit(L1_CHAIN_ID, _assetId, _transferData, L2_NATIVE_TOKEN_VAULT_ADDR); + _finalizeDeposit(_l1ChainId(), _assetId, _transferData, L2_NATIVE_TOKEN_VAULT_ADDR); - emit DepositFinalizedAssetRouter(L1_CHAIN_ID, _assetId, _transferData); + emit DepositFinalizedAssetRouter(_l1ChainId(), _assetId, _transferData); } /// @notice Initiates a withdrawal by burning funds on the contract and sending the message to L1 @@ -177,7 +232,7 @@ contract L2AssetRouter is AssetRouterBase, IL2AssetRouter, ReentrancyGuard { bool _alwaysNewMessageFormat ) internal returns (bytes32 txHash) { bytes memory l1bridgeMintData = _burn({ - _chainId: L1_CHAIN_ID, + _chainId: _l1ChainId(), _nextMsgValue: 0, _assetId: _assetId, _originalCaller: _sender, @@ -204,7 +259,7 @@ contract L2AssetRouter is AssetRouterBase, IL2AssetRouter, ReentrancyGuard { txHash = IL2SharedBridgeLegacy(L2_LEGACY_SHARED_BRIDGE).sendMessageToL1(message); } - emit WithdrawalInitiatedAssetRouter(L1_CHAIN_ID, _sender, _assetId, _assetData); + emit WithdrawalInitiatedAssetRouter(_l1ChainId(), _sender, _assetId, _assetData); } /// @notice Encodes the message for l2ToL1log sent during withdraw initialization. @@ -362,4 +417,16 @@ contract L2AssetRouter is AssetRouterBase, IL2AssetRouter, ReentrancyGuard { function l1Bridge() external view returns (address) { return L1_ASSET_ROUTER; } + + function _bridgehub() internal view override returns (IBridgehub) { + return BRIDGE_HUB; + } + + function _l1ChainId() internal view override returns (uint256) { + return L1_CHAIN_ID; + } + + function _eraChainId() internal view override returns (uint256) { + return eraChainId; + } } diff --git a/l1-contracts/contracts/bridge/interfaces/IL2WrappedBaseToken.sol b/l1-contracts/contracts/bridge/interfaces/IL2WrappedBaseToken.sol index ae7e1a916c..5b9994dda9 100644 --- a/l1-contracts/contracts/bridge/interfaces/IL2WrappedBaseToken.sol +++ b/l1-contracts/contracts/bridge/interfaces/IL2WrappedBaseToken.sol @@ -12,4 +12,20 @@ interface IL2WrappedBaseToken { function depositTo(address _to) external payable; function withdrawTo(address _to, uint256 _amount) external; + + /// @notice Initializes a contract token for later use. Expected to be used in the proxy. + /// @notice This function is used to integrate the previously deployed WETH token with the bridge. + /// @dev Sets up `name`/`symbol`/`decimals` getters. + /// @param name_ The name of the token. + /// @param symbol_ The symbol of the token. + /// @param _l2Bridge Address of the L2 bridge + /// @param _l1Address Address of the L1 token that can be deposited to mint this L2 WETH. + /// Note: The decimals are hardcoded to 18, the same as on Ether. + function initializeV3( + string calldata name_, + string calldata symbol_, + address _l2Bridge, + address _l1Address, + bytes32 _baseTokenAssetId + ) external; } diff --git a/l1-contracts/contracts/bridge/ntv/L1NativeTokenVault.sol b/l1-contracts/contracts/bridge/ntv/L1NativeTokenVault.sol index 264892f0e1..72b7ec73eb 100644 --- a/l1-contracts/contracts/bridge/ntv/L1NativeTokenVault.sol +++ b/l1-contracts/contracts/bridge/ntv/L1NativeTokenVault.sol @@ -17,6 +17,7 @@ import {IL1AssetHandler} from "../interfaces/IL1AssetHandler.sol"; import {IL1Nullifier} from "../interfaces/IL1Nullifier.sol"; import {IBridgedStandardToken} from "../interfaces/IBridgedStandardToken.sol"; import {IL1AssetRouter} from "../asset-router/IL1AssetRouter.sol"; +import {IAssetRouterBase} from "../asset-router/IAssetRouterBase.sol"; import {ETH_TOKEN_ADDRESS} from "../../common/Config.sol"; import {L2_NATIVE_TOKEN_VAULT_ADDR} from "../../common/l2-helpers/L2ContractAddresses.sol"; @@ -32,6 +33,15 @@ import {ClaimFailedDepositFailed, WrongAmountTransferred, WrongCounterpart, Zero contract L1NativeTokenVault is IL1NativeTokenVault, IL1AssetHandler, NativeTokenVault { using SafeERC20 for IERC20; + /// @dev The address of the WETH token. + address public immutable override WETH_TOKEN; + + /// @dev L1 Shared Bridge smart contract that handles communication with its counterparts on L2s + IAssetRouterBase public immutable override ASSET_ROUTER; + + /// @dev The assetId of the base token. + bytes32 public immutable BASE_TOKEN_ASSET_ID; + /// @dev L1 nullifier contract that handles legacy functions & finalize withdrawal, confirm l2 tx mappings IL1Nullifier public immutable override L1_NULLIFIER; @@ -45,18 +55,10 @@ contract L1NativeTokenVault is IL1NativeTokenVault, IL1AssetHandler, NativeToken /// @param _l1WethAddress Address of WETH on deployed chain /// @param _l1AssetRouter Address of Asset Router on L1. /// @param _l1Nullifier Address of the nullifier contract, which handles transaction progress between L1 and ZK chains. - constructor( - address _l1WethAddress, - address _l1AssetRouter, - IL1Nullifier _l1Nullifier - ) - NativeTokenVault( - _l1WethAddress, - _l1AssetRouter, - DataEncoding.encodeNTVAssetId(block.chainid, ETH_TOKEN_ADDRESS), - block.chainid - ) - { + constructor(address _l1WethAddress, address _l1AssetRouter, IL1Nullifier _l1Nullifier) { + WETH_TOKEN = _l1WethAddress; + ASSET_ROUTER = IAssetRouterBase(_l1AssetRouter); + BASE_TOKEN_ASSET_ID = DataEncoding.encodeNTVAssetId(block.chainid, ETH_TOKEN_ADDRESS); L1_NULLIFIER = _l1Nullifier; } @@ -314,4 +316,24 @@ contract L1NativeTokenVault is IL1NativeTokenVault, IL1AssetHandler, NativeToken function _hasInfiniteBalance(bool _isNative, bytes32 _assetId, uint256 _chainId) private view returns (bool) { return !_isNative && originChainId[_assetId] == _chainId; } + + function L1_CHAIN_ID() public view override returns (uint256) { + return block.chainid; + } + + function _wethToken() internal view override returns (address) { + return WETH_TOKEN; + } + + function _assetRouter() internal view override returns (IAssetRouterBase) { + return ASSET_ROUTER; + } + + function _baseTokenAssetId() internal view override returns (bytes32) { + return BASE_TOKEN_ASSET_ID; + } + + function _l1ChainId() internal view override returns (uint256) { + return block.chainid; + } } diff --git a/l1-contracts/contracts/bridge/ntv/L2NativeTokenVault.sol b/l1-contracts/contracts/bridge/ntv/L2NativeTokenVault.sol index bead6873cb..79e4a3620d 100644 --- a/l1-contracts/contracts/bridge/ntv/L2NativeTokenVault.sol +++ b/l1-contracts/contracts/bridge/ntv/L2NativeTokenVault.sol @@ -4,7 +4,6 @@ pragma solidity 0.8.28; import {BeaconProxy} from "@openzeppelin/contracts-v4/proxy/beacon/BeaconProxy.sol"; import {IBeacon} from "@openzeppelin/contracts-v4/proxy/beacon/IBeacon.sol"; -import {UpgradeableBeacon} from "@openzeppelin/contracts-v4/proxy/beacon/UpgradeableBeacon.sol"; import {IERC20} from "@openzeppelin/contracts-v4/token/ERC20/IERC20.sol"; import {SafeERC20} from "@openzeppelin/contracts-v4/token/ERC20/utils/SafeERC20.sol"; @@ -14,74 +13,99 @@ import {IL2NativeTokenVault} from "./IL2NativeTokenVault.sol"; import {NativeTokenVault} from "./NativeTokenVault.sol"; import {IL2SharedBridgeLegacy} from "../interfaces/IL2SharedBridgeLegacy.sol"; -import {BridgedStandardERC20} from "../BridgedStandardERC20.sol"; import {IL2AssetRouter} from "../asset-router/IL2AssetRouter.sol"; -import {L2_ASSET_ROUTER_ADDR, L2_DEPLOYER_SYSTEM_CONTRACT_ADDR} from "../../common/l2-helpers/L2ContractAddresses.sol"; -import {IContractDeployer, L2ContractHelper} from "../../common/l2-helpers/L2ContractHelper.sol"; +import {L2_DEPLOYER_SYSTEM_CONTRACT_ADDR, L2_ASSET_ROUTER_ADDR, L2_COMPLEX_UPGRADER_ADDR} from "../../common/l2-helpers/L2ContractAddresses.sol"; +import {L2ContractHelper, IContractDeployer} from "../../common/l2-helpers/L2ContractHelper.sol"; import {SystemContractsCaller} from "../../common/l2-helpers/SystemContractsCaller.sol"; import {DataEncoding} from "../../common/libraries/DataEncoding.sol"; -import {AddressMismatch, AssetIdAlreadyRegistered, AssetIdNotSupported, DeployFailed, EmptyAddress, EmptyBytes32, NoLegacySharedBridge, TokenIsLegacy, TokenNotLegacy} from "../../common/L1ContractErrors.sol"; +import {InvalidCaller, AssetIdAlreadyRegistered, NoLegacySharedBridge, TokenIsLegacy, TokenNotLegacy, EmptyAddress, EmptyBytes32, AddressMismatch, DeployFailed, AssetIdNotSupported} from "../../common/L1ContractErrors.sol"; + +import {IAssetRouterBase} from "../asset-router/IAssetRouterBase.sol"; /// @author Matter Labs /// @custom:security-contact security@matterlabs.dev /// @notice The "default" bridge implementation for the ERC20 tokens. Note, that it does not /// support any custom token logic, i.e. rebase tokens' functionality is not supported. +/// @dev Important: L2 contracts are not allowed to have any immutable variables. This is needed for compatibility with ZKsyncOS. contract L2NativeTokenVault is IL2NativeTokenVault, NativeTokenVault { using SafeERC20 for IERC20; - IL2SharedBridgeLegacy public immutable L2_LEGACY_SHARED_BRIDGE; + /// @dev The address of the WETH token. + address public override WETH_TOKEN; + + /// @dev The assetId of the base token. + bytes32 public BASE_TOKEN_ASSET_ID; + + /// @dev Chain ID of L1 for bridging reasons. + uint256 public override L1_CHAIN_ID; + + IL2SharedBridgeLegacy public L2_LEGACY_SHARED_BRIDGE; /// @dev Bytecode hash of the proxy for tokens deployed by the bridge. - bytes32 public immutable L2_TOKEN_PROXY_BYTECODE_HASH; + bytes32 public L2_TOKEN_PROXY_BYTECODE_HASH; /// @notice Initializes the bridge contract for later use. - /// @dev this contract is deployed in the L2GenesisUpgrade, and is meant as direct deployment without a proxy. - /// @param _l1ChainId The L1 chain id differs between mainnet and testnets. + /// @dev This function is used to initialize the contract with the initial values. + /// @dev This function is called both for new chains. + /// @param _l1ChainId The chain id of L1. + /// @param _aliasedOwner The address of the owner of the contract. /// @param _l2TokenProxyBytecodeHash The bytecode hash of the proxy for tokens deployed by the bridge. - /// @param _aliasedOwner The address of the governor contract. /// @param _legacySharedBridge The address of the L2 legacy shared bridge. /// @param _bridgedTokenBeacon The address of the L2 token beacon for legacy chains. - /// @param _contractsDeployedAlready Ensures beacon proxy for standard ERC20 has not been deployed. - /// @param _wethToken Address of WETH on deployed chain - constructor( + function initL2( uint256 _l1ChainId, address _aliasedOwner, bytes32 _l2TokenProxyBytecodeHash, address _legacySharedBridge, address _bridgedTokenBeacon, - bool _contractsDeployedAlready, address _wethToken, bytes32 _baseTokenAssetId - ) NativeTokenVault(_wethToken, L2_ASSET_ROUTER_ADDR, _baseTokenAssetId, _l1ChainId) { - L2_LEGACY_SHARED_BRIDGE = IL2SharedBridgeLegacy(_legacySharedBridge); - - if (_l2TokenProxyBytecodeHash == bytes32(0)) { - revert EmptyBytes32(); - } + ) public onlyUpgrader { + _disableInitializers(); + updateL2(_l1ChainId, _l2TokenProxyBytecodeHash, _legacySharedBridge, _wethToken, _baseTokenAssetId); if (_aliasedOwner == address(0)) { revert EmptyAddress(); } - - L2_TOKEN_PROXY_BYTECODE_HASH = _l2TokenProxyBytecodeHash; _transferOwnership(_aliasedOwner); + bridgedTokenBeacon = IBeacon(_bridgedTokenBeacon); + emit L2TokenBeaconUpdated(address(bridgedTokenBeacon), _l2TokenProxyBytecodeHash); + } - if (_contractsDeployedAlready) { - if (_bridgedTokenBeacon == address(0)) { - revert EmptyAddress(); - } - bridgedTokenBeacon = IBeacon(_bridgedTokenBeacon); - } else { - address l2StandardToken = address(new BridgedStandardERC20{salt: bytes32(0)}()); + modifier onlyUpgrader() { + if (msg.sender != L2_COMPLEX_UPGRADER_ADDR) { + revert InvalidCaller(msg.sender); + } + _; + } - UpgradeableBeacon tokenBeacon = new UpgradeableBeacon{salt: bytes32(0)}(l2StandardToken); + /// @notice Updates the contract. + /// @dev This function is used to initialize the new implementation of L2NativeTokenVault on existing chains during + /// the upgrade. + /// @param _l1ChainId The chain id of L1. + /// @param _l2TokenProxyBytecodeHash The bytecode hash of the proxy for tokens deployed by the bridge. + /// @param _legacySharedBridge The address of the L2 legacy shared bridge. + /// @param _wethToken The address of the WETH token. + /// @param _baseTokenAssetId The asset id of the base token. + function updateL2( + uint256 _l1ChainId, + bytes32 _l2TokenProxyBytecodeHash, + address _legacySharedBridge, + address _wethToken, + bytes32 _baseTokenAssetId + ) public onlyUpgrader { + WETH_TOKEN = _wethToken; + BASE_TOKEN_ASSET_ID = _baseTokenAssetId; + L1_CHAIN_ID = _l1ChainId; + L2_LEGACY_SHARED_BRIDGE = IL2SharedBridgeLegacy(_legacySharedBridge); - tokenBeacon.transferOwnership(owner()); - bridgedTokenBeacon = IBeacon(address(tokenBeacon)); - emit L2TokenBeaconUpdated(address(bridgedTokenBeacon), _l2TokenProxyBytecodeHash); + if (_l2TokenProxyBytecodeHash == bytes32(0)) { + revert EmptyBytes32(); } + + L2_TOKEN_PROXY_BYTECODE_HASH = _l2TokenProxyBytecodeHash; } function _registerTokenIfBridgedLegacy(address _tokenAddress) internal override returns (bytes32) { @@ -303,7 +327,27 @@ contract L2NativeTokenVault is IL2NativeTokenVault, NativeTokenVault { /// @param _l1Token The address of token on L1. /// @return expectedToken The address of token on L2. function l2TokenAddress(address _l1Token) public view returns (address expectedToken) { - bytes32 expectedAssetId = DataEncoding.encodeNTVAssetId(L1_CHAIN_ID, _l1Token); + bytes32 expectedAssetId = DataEncoding.encodeNTVAssetId(_l1ChainId(), _l1Token); expectedToken = tokenAddress[expectedAssetId]; } + + function ASSET_ROUTER() public view override returns (IAssetRouterBase) { + return IAssetRouterBase(L2_ASSET_ROUTER_ADDR); + } + + function _wethToken() internal view override returns (address) { + return WETH_TOKEN; + } + + function _assetRouter() internal view override returns (IAssetRouterBase) { + return IAssetRouterBase(L2_ASSET_ROUTER_ADDR); + } + + function _baseTokenAssetId() internal view override returns (bytes32) { + return BASE_TOKEN_ASSET_ID; + } + + function _l1ChainId() internal view override returns (uint256) { + return L1_CHAIN_ID; + } } diff --git a/l1-contracts/contracts/bridge/ntv/NativeTokenVault.sol b/l1-contracts/contracts/bridge/ntv/NativeTokenVault.sol index 57ff305046..e144b3ce1a 100644 --- a/l1-contracts/contracts/bridge/ntv/NativeTokenVault.sol +++ b/l1-contracts/contracts/bridge/ntv/NativeTokenVault.sol @@ -36,18 +36,6 @@ abstract contract NativeTokenVault is { using SafeERC20 for IERC20; - /// @dev The address of the WETH token. - address public immutable override WETH_TOKEN; - - /// @dev L1 Shared Bridge smart contract that handles communication with its counterparts on L2s - IAssetRouterBase public immutable override ASSET_ROUTER; - - /// @dev The assetId of the base token. - bytes32 public immutable BASE_TOKEN_ASSET_ID; - - /// @dev Chain ID of L1 for bridging reasons. - uint256 public immutable L1_CHAIN_ID; - /// @dev Contract that stores the implementation address for token. /// @dev For more details see https://docs.openzeppelin.com/contracts/3.x/api/proxy#UpgradeableBeacon. IBeacon public bridgedTokenBeacon; @@ -70,36 +58,24 @@ abstract contract NativeTokenVault is /// @notice Checks that the message sender is the bridgehub. modifier onlyAssetRouter() { - if (msg.sender != address(ASSET_ROUTER)) { + if (msg.sender != address(_assetRouter())) { revert Unauthorized(msg.sender); } _; } - /// @dev Contract is expected to be used as proxy implementation. - /// @dev Disable the initialization to prevent Parity hack. - /// @param _wethToken Address of WETH on deployed chain - /// @param _assetRouter Address of assetRouter - constructor(address _wethToken, address _assetRouter, bytes32 _baseTokenAssetId, uint256 _l1ChainId) { - _disableInitializers(); - L1_CHAIN_ID = _l1ChainId; - ASSET_ROUTER = IAssetRouterBase(_assetRouter); - WETH_TOKEN = _wethToken; - BASE_TOKEN_ASSET_ID = _baseTokenAssetId; - } - /// @inheritdoc INativeTokenVault function registerToken(address _nativeToken) external virtual { _registerToken(_nativeToken); } function _registerToken(address _nativeToken) internal virtual returns (bytes32 newAssetId) { - // We allow registering `WETH_TOKEN` inside `NativeTokenVault` only for L1 native token vault. + // We allow registering `_wethToken()` inside `NativeTokenVault` only for L1 native token vault. // It is needed to allow withdrawing such assets. We restrict all WETH-related // operations to deposits from L1 only to be able to upgrade their logic more easily in the // future. - if (_nativeToken == WETH_TOKEN && block.chainid != L1_CHAIN_ID) { - revert TokenNotSupported(WETH_TOKEN); + if (_nativeToken == _wethToken() && block.chainid != _l1ChainId()) { + revert TokenNotSupported(_wethToken()); } if (_nativeToken.code.length == 0) { revert EmptyToken(); @@ -341,13 +317,13 @@ abstract contract NativeTokenVault is address _receiver, address _nativeToken ) internal virtual returns (bytes memory _bridgeMintData) { - if (_nativeToken == WETH_TOKEN) { - // This ensures that WETH_TOKEN can never be bridged from chains it is native to. + if (_nativeToken == _wethToken()) { + // This ensures that _wethToken() can never be bridged from chains it is native to. // It can only be withdrawn from the chain where it has already gotten. revert BurningNativeWETHNotSupported(); } - if (_assetId == BASE_TOKEN_ASSET_ID) { + if (_assetId == _baseTokenAssetId()) { if (_depositAmount != msg.value) { revert ValueMismatch(_depositAmount, msg.value); } @@ -424,7 +400,7 @@ abstract contract NativeTokenVault is tokenAddress[newAssetId] = _nativeToken; assetId[_nativeToken] = newAssetId; originChainId[newAssetId] = block.chainid; - ASSET_ROUTER.setAssetHandlerAddressThisChain(bytes32(uint256(uint160(_nativeToken))), address(this)); + _assetRouter().setAssetHandlerAddressThisChain(bytes32(uint256(uint160(_nativeToken))), address(this)); } function _handleChainBalanceIncrease( @@ -476,7 +452,7 @@ abstract contract NativeTokenVault is // slither-disable-next-line unused-return (tokenOriginChainId, , , ) = DataEncoding.decodeTokenData(_erc20Data); if (tokenOriginChainId == 0) { - tokenOriginChainId = L1_CHAIN_ID; + tokenOriginChainId = _l1ChainId(); } } @@ -569,4 +545,12 @@ abstract contract NativeTokenVault is function unpause() external onlyOwner { _unpause(); } + + function _wethToken() internal view virtual returns (address); + + function _assetRouter() internal view virtual returns (IAssetRouterBase); + + function _baseTokenAssetId() internal view virtual returns (bytes32); + + function _l1ChainId() internal view virtual returns (uint256); } diff --git a/l1-contracts/contracts/bridge/ntv/UpgradeableBeaconDeployer.sol b/l1-contracts/contracts/bridge/ntv/UpgradeableBeaconDeployer.sol new file mode 100644 index 0000000000..2716c9102e --- /dev/null +++ b/l1-contracts/contracts/bridge/ntv/UpgradeableBeaconDeployer.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.28; + +import {UpgradeableBeacon} from "@openzeppelin/contracts-v4/proxy/beacon/UpgradeableBeacon.sol"; + +import {BridgedStandardERC20} from "../BridgedStandardERC20.sol"; + +/// @author Matter Labs +/// @custom:security-contact security@matterlabs.dev +/// @notice A contract that deploys the upgradeable beacon for the bridged standard ERC20 token. +/// @dev Besides separation of concerns, we need it as a separate contract to ensure that L2NativeTokenVaultZKOS +/// does not have to include BridgedStandardERC20 and UpgradeableBeacon and so can fit into the code size limit. +contract UpgradeableBeaconDeployer { + function deployUpgradeableBeacon(address _owner) external returns (address) { + address l2StandardToken = address(new BridgedStandardERC20{salt: bytes32(0)}()); + + UpgradeableBeacon tokenBeacon = new UpgradeableBeacon{salt: bytes32(0)}(l2StandardToken); + + tokenBeacon.transferOwnership(_owner); + return address(tokenBeacon); + } +} diff --git a/l1-contracts/contracts/bridgehub/Bridgehub.sol b/l1-contracts/contracts/bridgehub/BridgehubBase.sol similarity index 91% rename from l1-contracts/contracts/bridgehub/Bridgehub.sol rename to l1-contracts/contracts/bridgehub/BridgehubBase.sol index ffcaa313f3..ea485883ff 100644 --- a/l1-contracts/contracts/bridgehub/Bridgehub.sol +++ b/l1-contracts/contracts/bridgehub/BridgehubBase.sol @@ -16,33 +16,32 @@ import {ReentrancyGuard} from "../common/ReentrancyGuard.sol"; import {DataEncoding} from "../common/libraries/DataEncoding.sol"; import {IZKChain} from "../state-transition/chain-interfaces/IZKChain.sol"; -import {BRIDGEHUB_MIN_SECOND_BRIDGE_ADDRESS, ETH_TOKEN_ADDRESS, SETTLEMENT_LAYER_RELAY_SENDER, TWO_BRIDGES_MAGIC_VALUE} from "../common/Config.sol"; +import {BRIDGEHUB_MIN_SECOND_BRIDGE_ADDRESS, SETTLEMENT_LAYER_RELAY_SENDER, TWO_BRIDGES_MAGIC_VALUE} from "../common/Config.sol"; import {BridgehubL2TransactionRequest, L2Log, L2Message, TxStatus} from "../common/Messaging.sol"; import {AddressAliasHelper} from "../vendor/AddressAliasHelper.sol"; import {IMessageRoot} from "./IMessageRoot.sol"; import {ICTMDeploymentTracker} from "./ICTMDeploymentTracker.sol"; -import {AlreadyCurrentSL, ChainIdAlreadyPresent, ChainNotLegacy, ChainNotPresentInCTM, NotChainAssetHandler, NotCurrentSL, NotInGatewayMode, NotL1, NotRelayedSender, SLNotWhitelisted, SecondBridgeAddressTooLow} from "./L1BridgehubErrors.sol"; -import {AssetHandlerNotRegistered, AssetIdAlreadyRegistered, AssetIdNotSupported, BridgeHubAlreadyRegistered, CTMAlreadyRegistered, CTMNotRegistered, ChainIdAlreadyExists, ChainIdCantBeCurrentChain, ChainIdMismatch, ChainIdNotRegistered, ChainIdTooBig, EmptyAssetId, IncorrectBridgeHubAddress, MigrationPaused, MsgValueMismatch, NoCTMForAssetId, SettlementLayersMustSettleOnL1, SharedBridgeNotSet, Unauthorized, WrongMagicValue, ZKChainLimitReached, ZeroAddress, ZeroChainId} from "../common/L1ContractErrors.sol"; +import {NotL1, NotRelayedSender, ChainIdAlreadyPresent, ChainNotPresentInCTM, SecondBridgeAddressTooLow, NotInGatewayMode, SLNotWhitelisted, NotCurrentSL, AlreadyCurrentSL, ChainNotLegacy, NotChainAssetHandler} from "./L1BridgehubErrors.sol"; +import {NoCTMForAssetId, SettlementLayersMustSettleOnL1, MigrationPaused, AssetIdAlreadyRegistered, ChainIdNotRegistered, AssetHandlerNotRegistered, ZKChainLimitReached, CTMAlreadyRegistered, CTMNotRegistered, ZeroChainId, ChainIdTooBig, BridgeHubAlreadyRegistered, MsgValueMismatch, ZeroAddress, Unauthorized, SharedBridgeNotSet, WrongMagicValue, ChainIdAlreadyExists, ChainIdMismatch, ChainIdCantBeCurrentChain, EmptyAssetId, AssetIdNotSupported, IncorrectBridgeHubAddress} from "../common/L1ContractErrors.sol"; +import {L2_COMPLEX_UPGRADER_ADDR} from "../common/l2-helpers/L2ContractAddresses.sol"; +import {AssetHandlerModifiers} from "../bridge/interfaces/AssetHandlerModifiers.sol"; /// @author Matter Labs /// @custom:security-contact security@matterlabs.dev /// @dev The Bridgehub contract serves as the primary entry point for L1->L2 communication, /// facilitating interactions between end user and bridges. /// It also manages state transition managers, base tokens, and chain registrations. -contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, PausableUpgradeable { +/// Bridgehub is also an IL1AssetHandler for the chains themselves, which is used to migrate the chains +/// between different settlement layers (for example from L1 to Gateway). +abstract contract BridgehubBase is + IBridgehub, + ReentrancyGuard, + Ownable2StepUpgradeable, + PausableUpgradeable, + AssetHandlerModifiers +{ using EnumerableMap for EnumerableMap.UintToAddressMap; - /// @notice the asset id of Eth. This is only used on L1. - bytes32 internal immutable ETH_TOKEN_ASSET_ID; - - /// @notice The chain id of L1. This contract can be deployed on multiple layers, but this value is still equal to the - /// L1 that is at the most base layer. - uint256 public immutable L1_CHAIN_ID; - - /// @notice The total number of ZK chains can be created/connected to this CTM. - /// This is the temporary security measure. - uint256 public immutable MAX_NUMBER_OF_ZK_CHAINS; - /// @notice all the ether and ERC20 tokens are held by NativeVaultToken managed by the asset router. address public assetRouter; @@ -103,6 +102,13 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus /// @notice the chain asset handler used for chain migration. address public chainAssetHandler; + /** + * @dev This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ + uint256[36] private __gap; + modifier onlyOwnerOrAdmin() { if (msg.sender != admin && msg.sender != owner()) { revert Unauthorized(msg.sender); @@ -110,9 +116,25 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus _; } + modifier onlyOwnerOrUpgrader() { + if (msg.sender != owner() && msg.sender != L2_COMPLEX_UPGRADER_ADDR) { + revert Unauthorized(msg.sender); + } + _; + } + + modifier onlyUpgrader() { + if (msg.sender != L2_COMPLEX_UPGRADER_ADDR) { + revert Unauthorized(msg.sender); + } + _; + } + + /// FIXME: this modifier is not needed as we can move all the corresponding functions to the L1Bridgehub + /// We keep it here until we have a stable base branch to avoid merge conflicts. modifier onlyL1() { - if (L1_CHAIN_ID != block.chainid) { - revert NotL1(L1_CHAIN_ID, block.chainid); + if (_l1ChainId() != block.chainid) { + revert NotL1(_l1ChainId(), block.chainid); } _; } @@ -139,37 +161,10 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus _; } - /// @notice to avoid parity hack - constructor(uint256 _l1ChainId, address _owner, uint256 _maxNumberOfZKChains) reentrancyGuardInitializer { - _disableInitializers(); - L1_CHAIN_ID = _l1ChainId; - MAX_NUMBER_OF_ZK_CHAINS = _maxNumberOfZKChains; - - // Note that this assumes that the bridgehub only accepts transactions on chains with ETH base token only. - // This is indeed true, since the only methods where this immutable is used are the ones with `onlyL1` modifier. - // We will change this with interop. - ETH_TOKEN_ASSET_ID = DataEncoding.encodeNTVAssetId(L1_CHAIN_ID, ETH_TOKEN_ADDRESS); - _transferOwnership(_owner); - _initializeInner(); - } - - /// @notice used to initialize the contract - /// @notice this contract is also deployed on L2 as a system contract there the owner and the related functions will not be used - /// @param _owner the owner of the contract - function initialize(address _owner) external reentrancyGuardInitializer onlyL1 { - _transferOwnership(_owner); - _initializeInner(); - } - - /// @notice Used to initialize the contract on L1 - function initializeV2() external initializer onlyL1 { - _initializeInner(); - } - /// @notice Initializes the contract function _initializeInner() internal { - assetIdIsRegistered[ETH_TOKEN_ASSET_ID] = true; - whitelistedSettlementLayers[L1_CHAIN_ID] = true; + assetIdIsRegistered[_ethTokenAssetId()] = true; + whitelistedSettlementLayers[_l1ChainId()] = true; } //// Initialization and registration @@ -214,7 +209,7 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus ICTMDeploymentTracker _l1CtmDeployer, IMessageRoot _messageRoot, address _chainAssetHandler - ) external onlyOwner { + ) external onlyOwnerOrUpgrader { assetRouter = _assetRouter; l1CtmDeployer = _l1CtmDeployer; messageRoot = _messageRoot; @@ -323,7 +318,7 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus /// @param _assetAddress the asset handler address function setCTMAssetAddress(bytes32 _additionalData, address _assetAddress) external { // It is a simplified version of the logic used by the AssetRouter to manage asset handlers. - // CTM's assetId is `keccak256(abi.encode(L1_CHAIN_ID, l1CtmDeployer, ctmAddress))`. + // CTM's assetId is `keccak256(abi.encode(_l1ChainId(), l1CtmDeployer, ctmAddress))`. // And the l1CtmDeployer is considered the deployment tracker for the CTM asset. // // The l1CtmDeployer will call this method to set the asset handler address for the assetId. @@ -333,7 +328,7 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus // it is double checked that `assetId` is indeed derived from the `l1CtmDeployer`. // TODO(EVM-703): This logic should be revised once interchain communication is implemented. - address sender = L1_CHAIN_ID == block.chainid ? msg.sender : AddressAliasHelper.undoL1ToL2Alias(msg.sender); + address sender = _l1ChainId() == block.chainid ? msg.sender : AddressAliasHelper.undoL1ToL2Alias(msg.sender); // This method can be accessed by l1CtmDeployer only if (sender != address(l1CtmDeployer)) { revert Unauthorized(sender); @@ -342,7 +337,7 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus revert CTMNotRegistered(); } - bytes32 ctmAssetId = DataEncoding.encodeAssetId(L1_CHAIN_ID, _additionalData, sender); + bytes32 ctmAssetId = DataEncoding.encodeAssetId(_l1ChainId(), _additionalData, sender); ctmAssetIdToAddress[ctmAssetId] = _assetAddress; ctmAssetIdFromAddress[_assetAddress] = ctmAssetId; emit AssetRegistered(ctmAssetId, _assetAddress, _additionalData, msg.sender); @@ -397,7 +392,7 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus function _registerNewZKChain(uint256 _chainId, address _zkChain, bool _checkMaxNumberOfZKChains) internal { // slither-disable-next-line unused-return zkChainMap.set(_chainId, _zkChain); - if (_checkMaxNumberOfZKChains && zkChainMap.length() > MAX_NUMBER_OF_ZK_CHAINS) { + if (_checkMaxNumberOfZKChains && zkChainMap.length() > _maxNumberOfZKChains()) { revert ZKChainLimitReached(); } } @@ -466,7 +461,7 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus // the transaction will revert on `bridgehubRequestL2Transaction` as call to zero address. { bytes32 tokenAssetId = baseTokenAssetId[_request.chainId]; - if (tokenAssetId == ETH_TOKEN_ASSET_ID) { + if (tokenAssetId == _ethTokenAssetId()) { if (msg.value != _request.mintValue) { revert MsgValueMismatch(_request.mintValue, msg.value); } @@ -523,7 +518,7 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus { bytes32 tokenAssetId = baseTokenAssetId[_request.chainId]; uint256 baseTokenMsgValue; - if (tokenAssetId == ETH_TOKEN_ASSET_ID) { + if (tokenAssetId == _ethTokenAssetId()) { if (msg.value != _request.mintValue + _request.secondBridgeValue) { revert MsgValueMismatch(_request.mintValue + _request.secondBridgeValue, msg.value); } @@ -606,7 +601,7 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus bytes32 _canonicalTxHash, uint64 _expirationTimestamp ) external override onlySettlementLayerRelayedSender { - if (L1_CHAIN_ID == block.chainid) { + if (_l1ChainId() == block.chainid) { revert NotInGatewayMode(); } address zkChain = zkChainMap.get(_chainId); @@ -686,7 +681,7 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus uint256 _gasPrice, uint256 _l2GasLimit, uint256 _l2GasPerPubdataByteLimit - ) external view returns (uint256) { + ) external view override returns (uint256) { address zkChain = zkChainMap.get(_chainId); return IZKChain(zkChain).l2TransactionBaseCost(_gasPrice, _l2GasLimit, _l2GasPerPubdataByteLimit); } @@ -892,4 +887,10 @@ contract Bridgehub is IBridgehub, ReentrancyGuard, Ownable2StepUpgradeable, Paus function sharedBridge() public view returns (address) { return assetRouter; } + + function _ethTokenAssetId() internal view virtual returns (bytes32); + + function _l1ChainId() internal view virtual returns (uint256); + + function _maxNumberOfZKChains() internal view virtual returns (uint256); } diff --git a/l1-contracts/contracts/bridgehub/ChainAssetHandler.sol b/l1-contracts/contracts/bridgehub/ChainAssetHandlerBase.sol similarity index 79% rename from l1-contracts/contracts/bridgehub/ChainAssetHandler.sol rename to l1-contracts/contracts/bridgehub/ChainAssetHandlerBase.sol index 7a41dfdcf8..736cca6248 100644 --- a/l1-contracts/contracts/bridgehub/ChainAssetHandler.sol +++ b/l1-contracts/contracts/bridgehub/ChainAssetHandlerBase.sol @@ -25,7 +25,7 @@ import {IChainAssetHandler} from "./IChainAssetHandler.sol"; /// @dev The ChainAssetHandler contract is used for migrating chains between settlement layers, /// it is the IL1AssetHandler for the chains themselves, which is used to migrate the chains /// between different settlement layers (for example from L1 to Gateway). -contract ChainAssetHandler is +abstract contract ChainAssetHandlerBase is IChainAssetHandler, ReentrancyGuard, Ownable2StepUpgradeable, @@ -34,25 +34,24 @@ contract ChainAssetHandler is { using EnumerableMap for EnumerableMap.UintToAddressMap; - /// @notice The chain id of the L1. - uint256 internal immutable L1_CHAIN_ID; - - /// @notice The bridgehub contract. - IBridgehub internal immutable BRIDGEHUB; - - /// @notice The message root contract. - IMessageRoot internal immutable MESSAGE_ROOT; + /*////////////////////////////////////////////////////////////// + IMMUTABLE GETTERS + //////////////////////////////////////////////////////////////*/ - /// @notice The asset router contract. - address internal immutable ASSET_ROUTER; + ///@notice virtual getters standing in for the original immutables + function _ethTokenAssetId() internal view virtual returns (bytes32); + function _l1ChainId() internal view virtual returns (uint256); + function _bridgehub() internal view virtual returns (IBridgehub); + function _messageRoot() internal view virtual returns (IMessageRoot); + function _assetRouter() internal view virtual returns (address); /// @notice Used to pause the migrations of chains. Used for upgrades. bool public migrationPaused; /// @notice Only the asset router can call. modifier onlyAssetRouter() { - if (msg.sender != ASSET_ROUTER) { - revert NotAssetRouter(msg.sender, ASSET_ROUTER); + if (msg.sender != _assetRouter()) { + revert NotAssetRouter(msg.sender, _assetRouter()); } _; } @@ -67,34 +66,12 @@ contract ChainAssetHandler is /// @notice Only when the contract is deployed on L1. modifier onlyL1() { - if (L1_CHAIN_ID != block.chainid) { - revert NotL1(L1_CHAIN_ID, block.chainid); + if (_l1ChainId() != block.chainid) { + revert NotL1(_l1ChainId(), block.chainid); } _; } - /// @notice to avoid parity hack - constructor( - uint256 _l1ChainId, - address _owner, - IBridgehub _bridgehub, - address _assetRouter, - IMessageRoot _messageRoot - ) reentrancyGuardInitializer { - _disableInitializers(); - BRIDGEHUB = _bridgehub; - L1_CHAIN_ID = _l1ChainId; - ASSET_ROUTER = _assetRouter; - MESSAGE_ROOT = _messageRoot; - _transferOwnership(_owner); - } - - /// @dev Initializes the reentrancy guard. Expected to be used in the proxy. - /// @param _owner the owner of the contract - function initialize(address _owner) external reentrancyGuardInitializer { - _transferOwnership(_owner); - } - /*////////////////////////////////////////////////////////////// Chain migration //////////////////////////////////////////////////////////////*/ @@ -121,8 +98,8 @@ contract ChainAssetHandler is returns (bytes memory bridgehubMintData) { BridgehubBurnCTMAssetData memory bridgehubBurnData = abi.decode(_data, (BridgehubBurnCTMAssetData)); - if (_assetId != BRIDGEHUB.ctmAssetIdFromChainId(bridgehubBurnData.chainId)) { - revert IncorrectChainAssetId(_assetId, BRIDGEHUB.ctmAssetIdFromChainId(bridgehubBurnData.chainId)); + if (_assetId != _bridgehub().ctmAssetIdFromChainId(bridgehubBurnData.chainId)) { + revert IncorrectChainAssetId(_assetId, _bridgehub().ctmAssetIdFromChainId(bridgehubBurnData.chainId)); } address zkChain; @@ -130,7 +107,7 @@ contract ChainAssetHandler is // to avoid stack too deep { address ctm; - (zkChain, ctm) = BRIDGEHUB.forwardedBridgeBurnSetSettlementLayer( + (zkChain, ctm) = _bridgehub().forwardedBridgeBurnSetSettlementLayer( bridgehubBurnData.chainId, _settlementChainId ); @@ -153,15 +130,15 @@ contract ChainAssetHandler is } } bytes memory chainMintData = IZKChain(zkChain).forwardedBridgeBurn( - _settlementChainId == L1_CHAIN_ID + _settlementChainId == _l1ChainId() ? L1_SETTLEMENT_LAYER_VIRTUAL_ADDRESS - : BRIDGEHUB.getZKChain(_settlementChainId), + : _bridgehub().getZKChain(_settlementChainId), _originalCaller, bridgehubBurnData.chainData ); BridgehubMintCTMAssetData memory bridgeMintStruct = BridgehubMintCTMAssetData({ chainId: bridgehubBurnData.chainId, - baseTokenAssetId: BRIDGEHUB.baseTokenAssetId(bridgehubBurnData.chainId), + baseTokenAssetId: _bridgehub().baseTokenAssetId(bridgehubBurnData.chainId), ctmData: ctmMintData, chainData: chainMintData }); @@ -184,7 +161,7 @@ contract ChainAssetHandler is (BridgehubMintCTMAssetData) ); - (address zkChain, address ctm) = BRIDGEHUB.forwardedBridgeMint( + (address zkChain, address ctm) = _bridgehub().forwardedBridgeMint( _assetId, bridgehubMintData.chainId, bridgehubMintData.baseTokenAssetId @@ -197,8 +174,8 @@ contract ChainAssetHandler is revert ChainIdNotRegistered(bridgehubMintData.chainId); } // We want to allow any chain to be migrated, - BRIDGEHUB.registerNewZKChain(bridgehubMintData.chainId, zkChain, false); - MESSAGE_ROOT.addNewChain(bridgehubMintData.chainId); + _bridgehub().registerNewZKChain(bridgehubMintData.chainId, zkChain, false); + _messageRoot().addNewChain(bridgehubMintData.chainId); } IZKChain(zkChain).forwardedBridgeMint(bridgehubMintData.chainData, contractAlreadyDeployed); @@ -220,7 +197,7 @@ contract ChainAssetHandler is ) external payable override requireZeroValue(msg.value) onlyAssetRouter onlyL1 { BridgehubBurnCTMAssetData memory bridgehubBurnData = abi.decode(_data, (BridgehubBurnCTMAssetData)); - (address zkChain, address ctm) = BRIDGEHUB.forwardedBridgeRecoverFailedTransfer(bridgehubBurnData.chainId); + (address zkChain, address ctm) = _bridgehub().forwardedBridgeRecoverFailedTransfer(bridgehubBurnData.chainId); IChainTypeManager(ctm).forwardedBridgeRecoverFailedTransfer({ _chainId: bridgehubBurnData.chainId, diff --git a/l1-contracts/contracts/bridgehub/L1Bridgehub.sol b/l1-contracts/contracts/bridgehub/L1Bridgehub.sol new file mode 100644 index 0000000000..51059fba45 --- /dev/null +++ b/l1-contracts/contracts/bridgehub/L1Bridgehub.sol @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.28; + +import {DataEncoding} from "../common/libraries/DataEncoding.sol"; + +import {ETH_TOKEN_ADDRESS} from "../common/Config.sol"; +import {BridgehubBase} from "./BridgehubBase.sol"; + +/// @author Matter Labs +/// @custom:security-contact security@matterlabs.dev +/// @dev The Bridgehub contract serves as the primary entry point for L1->L2 communication, +/// facilitating interactions between end user and bridges. +/// It also manages state transition managers, base tokens, and chain registrations. +/// Bridgehub is also an IL1AssetHandler for the chains themselves, which is used to migrate the chains +/// between different settlement layers (for example from L1 to Gateway). +contract L1Bridgehub is BridgehubBase { + /// @notice the asset id of Eth. This is only used on L1. + bytes32 internal immutable ETH_TOKEN_ASSET_ID; + + /// @notice The total number of ZK chains can be created/connected to this CTM. + /// This is the temporary security measure. + uint256 public immutable MAX_NUMBER_OF_ZK_CHAINS; + + /// @notice to avoid parity hack + constructor(address _owner, uint256 _maxNumberOfZKChains) reentrancyGuardInitializer { + _disableInitializers(); + MAX_NUMBER_OF_ZK_CHAINS = _maxNumberOfZKChains; + + // Note that this assumes that the bridgehub only accepts transactions on chains with ETH base token only. + // This is indeed true, since the only methods where this immutable is used are the ones with `onlyL1` modifier. + // We will change this with interop. + ETH_TOKEN_ASSET_ID = DataEncoding.encodeNTVAssetId(block.chainid, ETH_TOKEN_ADDRESS); + _transferOwnership(_owner); + _initializeInner(); + } + + /// @notice used to initialize the contract + /// @notice this contract is also deployed on L2 as a system contract there the owner and the related functions will not be used + /// @param _owner the owner of the contract + function initialize(address _owner) external reentrancyGuardInitializer { + _transferOwnership(_owner); + _initializeInner(); + } + + /// @notice Used to initialize the contract on L1 + function initializeV2() external initializer { + _initializeInner(); + } + + function L1_CHAIN_ID() public view override returns (uint256) { + return block.chainid; + } + + function _ethTokenAssetId() internal view override returns (bytes32) { + return ETH_TOKEN_ASSET_ID; + } + + function _l1ChainId() internal view override returns (uint256) { + return block.chainid; + } + + function _maxNumberOfZKChains() internal view override returns (uint256) { + return MAX_NUMBER_OF_ZK_CHAINS; + } +} diff --git a/l1-contracts/contracts/bridgehub/L1ChainAssetHandler.sol b/l1-contracts/contracts/bridgehub/L1ChainAssetHandler.sol new file mode 100644 index 0000000000..4621ce645d --- /dev/null +++ b/l1-contracts/contracts/bridgehub/L1ChainAssetHandler.sol @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.28; + +import "./ChainAssetHandlerBase.sol"; +import {ETH_TOKEN_ADDRESS} from "../common/Config.sol"; +import {DataEncoding} from "../common/libraries/DataEncoding.sol"; + +/// @dev L1 version – keeps the cheap immutables set in the constructor. +contract L1ChainAssetHandler is ChainAssetHandlerBase { + bytes32 internal immutable ETH_TOKEN_ASSET_ID; + uint256 internal immutable L1_CHAIN_ID; + IBridgehub internal immutable BRIDGEHUB; + IMessageRoot internal immutable MESSAGE_ROOT; + address internal immutable ASSET_ROUTER; + + constructor( + uint256 _l1ChainId, + address _owner, + IBridgehub _bridgehub, + address _assetRouter, + IMessageRoot _messageRoot + ) reentrancyGuardInitializer { + _disableInitializers(); + BRIDGEHUB = _bridgehub; + L1_CHAIN_ID = _l1ChainId; + ASSET_ROUTER = _assetRouter; + MESSAGE_ROOT = _messageRoot; + ETH_TOKEN_ASSET_ID = DataEncoding.encodeNTVAssetId(_l1ChainId, ETH_TOKEN_ADDRESS); + _transferOwnership(_owner); + } + + /*////////////////////////////////////////////////////////////// + IMMUTABLE GETTERS + //////////////////////////////////////////////////////////////*/ + + function _ethTokenAssetId() internal view override returns (bytes32) { + return ETH_TOKEN_ASSET_ID; + } + function _l1ChainId() internal view override returns (uint256) { + return L1_CHAIN_ID; + } + function _bridgehub() internal view override returns (IBridgehub) { + return BRIDGEHUB; + } + function _messageRoot() internal view override returns (IMessageRoot) { + return MESSAGE_ROOT; + } + function _assetRouter() internal view override returns (address) { + return ASSET_ROUTER; + } +} diff --git a/l1-contracts/contracts/bridgehub/L1MessageRoot.sol b/l1-contracts/contracts/bridgehub/L1MessageRoot.sol new file mode 100644 index 0000000000..dde66e59ff --- /dev/null +++ b/l1-contracts/contracts/bridgehub/L1MessageRoot.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.28; + +import {IBridgehub} from "./IBridgehub.sol"; + +import {MessageRootBase} from "./MessageRootBase.sol"; + +/// @author Matter Labs +/// @custom:security-contact security@matterlabs.dev +/// @dev The MessageRoot contract is responsible for storing the cross message roots of the chains and the aggregated root of all chains. +contract L1MessageRoot is MessageRootBase { + /// @dev Bridgehub smart contract that is used to operate with L2 via asynchronous L2 <-> L1 communication. + IBridgehub public immutable BRIDGE_HUB; + + /// @dev Contract is expected to be used as proxy implementation on L1, but as a system contract on L2. + /// This means we call the _initialize in both the constructor and the initialize functions. + /// @dev Initialize the implementation to prevent Parity hack. + constructor(IBridgehub _bridgehub) { + BRIDGE_HUB = _bridgehub; + _initialize(); + _disableInitializers(); + } + + /// @dev Initializes a contract for later use. Expected to be used in the proxy on L1, on L2 it is a system contract without a proxy. + function initialize() external initializer { + _initialize(); + } + + function _bridgehub() internal view override returns (IBridgehub) { + return BRIDGE_HUB; + } + + function _l1ChainId() internal view override returns (uint256) { + return block.chainid; + } +} diff --git a/l1-contracts/contracts/bridgehub/L2Bridgehub.sol b/l1-contracts/contracts/bridgehub/L2Bridgehub.sol new file mode 100644 index 0000000000..eb568ff157 --- /dev/null +++ b/l1-contracts/contracts/bridgehub/L2Bridgehub.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.28; + +import {DataEncoding} from "../common/libraries/DataEncoding.sol"; + +import {ETH_TOKEN_ADDRESS} from "../common/Config.sol"; +import {BridgehubBase} from "./BridgehubBase.sol"; + +/// @author Matter Labs +/// @custom:security-contact security@matterlabs.dev +/// @dev The Bridgehub contract serves as the primary entry point for L1->L2 communication, +/// facilitating interactions between end user and bridges. +/// It also manages state transition managers, base tokens, and chain registrations. +/// Bridgehub is also an IL1AssetHandler for the chains themselves, which is used to migrate the chains +/// between different settlement layers (for example from L1 to Gateway). +/// @dev Important: L2 contracts are not allowed to have any constructor. This is needed for compatibility with ZKsyncOS. +contract L2Bridgehub is BridgehubBase { + /// @notice the asset id of Eth. This is only used on L1. + bytes32 internal ETH_TOKEN_ASSET_ID; + + /// @notice The chain id of L1. This contract can be deployed on multiple layers, but this value is still equal to the + /// L1 that is at the most base layer. + uint256 public L1_CHAIN_ID; + + /// @notice The total number of ZK chains can be created/connected to this CTM. + /// This is the temporary security measure. + uint256 public MAX_NUMBER_OF_ZK_CHAINS; + + /// @notice to avoid parity hack + constructor() {} + + /// @notice Initializes the contract + /// @dev This function is used to initialize the contract with the initial values. + /// @dev This function is called both for new chains. + /// @param _l1ChainId The chain id of L1. + /// @param _owner The owner of the contract. + /// @param _maxNumberOfZKChains The maximum number of ZK chains that can be created. + function initL2( + uint256 _l1ChainId, + address _owner, + uint256 _maxNumberOfZKChains + ) public reentrancyGuardInitializer onlyUpgrader { + _disableInitializers(); + updateL2(_l1ChainId, _maxNumberOfZKChains); + _transferOwnership(_owner); + _initializeInner(); + } + + /// @notice Updates the contract. + /// @dev This function is used to initialize the new implementation of L2Bridgehub on existing chains during + /// the upgrade. + /// @param _l1ChainId The chain id of L1. + /// @param _maxNumberOfZKChains The maximum number of ZK chains that can be created. + function updateL2(uint256 _l1ChainId, uint256 _maxNumberOfZKChains) public onlyUpgrader { + L1_CHAIN_ID = _l1ChainId; + MAX_NUMBER_OF_ZK_CHAINS = _maxNumberOfZKChains; + + // Note that this assumes that the bridgehub only accepts transactions on chains with ETH base token only. + // This is indeed true, since the only methods where this immutable is used are the ones with `onlyL1` modifier. + // We will change this with interop. + ETH_TOKEN_ASSET_ID = DataEncoding.encodeNTVAssetId(L1_CHAIN_ID, ETH_TOKEN_ADDRESS); + } + + function _ethTokenAssetId() internal view override returns (bytes32) { + return ETH_TOKEN_ASSET_ID; + } + + function _l1ChainId() internal view override returns (uint256) { + return L1_CHAIN_ID; + } + + function _maxNumberOfZKChains() internal view override returns (uint256) { + return MAX_NUMBER_OF_ZK_CHAINS; + } +} diff --git a/l1-contracts/contracts/bridgehub/L2ChainAssetHandler.sol b/l1-contracts/contracts/bridgehub/L2ChainAssetHandler.sol new file mode 100644 index 0000000000..ea00bc8a75 --- /dev/null +++ b/l1-contracts/contracts/bridgehub/L2ChainAssetHandler.sol @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.28; + +import "./ChainAssetHandlerBase.sol"; +import {ETH_TOKEN_ADDRESS} from "../common/Config.sol"; +import {DataEncoding} from "../common/libraries/DataEncoding.sol"; + +/// @dev L2 version – no immutables; values are stored and set once in `initL2`. +contract L2ChainAssetHandler is ChainAssetHandlerBase { + bytes32 private ethTokenAssetId; + uint256 private l1ChainId; + IBridgehub private bridgehub; + IMessageRoot private messageRoot; + address private assetRouter; + + /// @notice One-time initializer (replaces constructor on L2). + function initL2( + uint256 _l1ChainId, + address _owner, + IBridgehub _bridgehub, + address _assetRouter, + IMessageRoot _messageRoot + ) external reentrancyGuardInitializer { + _disableInitializers(); + + updateL2(_l1ChainId, _bridgehub, _assetRouter, _messageRoot); + + _transferOwnership(_owner); + } + + function updateL2( + uint256 _l1ChainId, + IBridgehub _bridgehub, + address _assetRouter, + IMessageRoot _messageRoot + ) public { + bridgehub = _bridgehub; + l1ChainId = _l1ChainId; + assetRouter = _assetRouter; + messageRoot = _messageRoot; + ethTokenAssetId = DataEncoding.encodeNTVAssetId(_l1ChainId, ETH_TOKEN_ADDRESS); + } + + /*////////////////////////////////////////////////////////////// + IMMUTABLE GETTERS + //////////////////////////////////////////////////////////////*/ + + function _ethTokenAssetId() internal view override returns (bytes32) { + return ethTokenAssetId; + } + function _l1ChainId() internal view override returns (uint256) { + return l1ChainId; + } + function _bridgehub() internal view override returns (IBridgehub) { + return bridgehub; + } + function _messageRoot() internal view override returns (IMessageRoot) { + return messageRoot; + } + function _assetRouter() internal view override returns (address) { + return assetRouter; + } +} diff --git a/l1-contracts/contracts/bridgehub/L2MessageRoot.sol b/l1-contracts/contracts/bridgehub/L2MessageRoot.sol new file mode 100644 index 0000000000..4404f1a17f --- /dev/null +++ b/l1-contracts/contracts/bridgehub/L2MessageRoot.sol @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.28; + +import {IBridgehub} from "./IBridgehub.sol"; + +import {MessageRootBase} from "./MessageRootBase.sol"; + +import {L2_BRIDGEHUB_ADDR} from "../common/l2-helpers/L2ContractAddresses.sol"; + +/// @author Matter Labs +/// @custom:security-contact security@matterlabs.dev +/// @dev The MessageRoot contract is responsible for storing the cross message roots of the chains and the aggregated root of all chains. +contract L2MessageRoot is MessageRootBase { + /// @dev Chain ID of L1 for bridging reasons. + /// @dev Note, that while it is a simple storage variable, the name is in capslock for the backward compatibility with + /// the old version where it was an immutable. + uint256 public L1_CHAIN_ID; + + /// @dev Contract is expected to be used as proxy implementation on L1, but as a system contract on L2. + /// This means we call the _initialize in both the constructor and the initialize functions. + /// @dev Initialize the implementation to prevent Parity hack. + /// @param _l1ChainId The chain id of L1. + function initL2(uint256 _l1ChainId) public onlyUpgrader { + L1_CHAIN_ID = _l1ChainId; + _initialize(); + _disableInitializers(); + } + + function _bridgehub() internal view override returns (IBridgehub) { + return IBridgehub(L2_BRIDGEHUB_ADDR); + } + + function _l1ChainId() internal view override returns (uint256) { + return L1_CHAIN_ID; + } + + // A method for backwards compatibility with the old implementation + function BRIDGE_HUB() public view returns (IBridgehub) { + return IBridgehub(L2_BRIDGEHUB_ADDR); + } +} diff --git a/l1-contracts/contracts/bridgehub/MessageRoot.sol b/l1-contracts/contracts/bridgehub/MessageRootBase.sol similarity index 87% rename from l1-contracts/contracts/bridgehub/MessageRoot.sol rename to l1-contracts/contracts/bridgehub/MessageRootBase.sol index 2326159c0a..2c10fc80fb 100644 --- a/l1-contracts/contracts/bridgehub/MessageRoot.sol +++ b/l1-contracts/contracts/bridgehub/MessageRootBase.sol @@ -9,9 +9,11 @@ import {IBridgehub} from "./IBridgehub.sol"; import {IMessageRoot} from "./IMessageRoot.sol"; import {ChainExists, MessageRootNotRegistered, OnlyBridgehubOrChainAssetHandler, OnlyChain, NotL2} from "./L1BridgehubErrors.sol"; import {FullMerkle} from "../common/libraries/FullMerkle.sol"; - +import {InvalidCaller} from "../common/L1ContractErrors.sol"; import {MessageHashing} from "../common/libraries/MessageHashing.sol"; +import {L2_COMPLEX_UPGRADER_ADDR} from "../common/l2-helpers/L2ContractAddresses.sol"; + // Chain tree consists of batch commitments as their leaves. We use hash of "new bytes(96)" as the hash of an empty leaf. bytes32 constant CHAIN_TREE_EMPTY_ENTRY_HASH = bytes32( 0x46700b4d40ac5c35af2c22dda2787a91eb567b06c924a8fb8ae9a05b20c08c21 @@ -25,7 +27,7 @@ bytes32 constant SHARED_ROOT_TREE_EMPTY_HASH = bytes32( /// @author Matter Labs /// @custom:security-contact security@matterlabs.dev /// @dev The MessageRoot contract is responsible for storing the cross message roots of the chains and the aggregated root of all chains. -contract MessageRoot is IMessageRoot, Initializable { +abstract contract MessageRootBase is IMessageRoot, Initializable { using FullMerkle for FullMerkle.FullTree; using DynamicIncrementalMerkle for DynamicIncrementalMerkle.Bytes32PushTree; @@ -55,13 +57,6 @@ contract MessageRoot is IMessageRoot, Initializable { /// of length one, which only include the interop root itself. More on that in `L2InteropRootStorage` contract. event NewInteropRoot(uint256 indexed chainId, uint256 indexed blockNumber, uint256 indexed logId, bytes32[] sides); - /// @dev Bridgehub smart contract that is used to operate with L2 via asynchronous L2 <-> L1 communication. - IBridgehub public immutable override BRIDGE_HUB; - - /// @notice The chain id of L1. This contract can be deployed on multiple layers, but this value is still equal to the - /// L1 that is at the most base layer. - uint256 public immutable L1_CHAIN_ID; - /// @notice The number of chains that are registered. uint256 public chainCount; @@ -85,11 +80,11 @@ contract MessageRoot is IMessageRoot, Initializable { /// @notice Checks that the message sender is the bridgehub or the chain asset handler. modifier onlyBridgehubOrChainAssetHandler() { - if (msg.sender != address(BRIDGE_HUB) && msg.sender != address(BRIDGE_HUB.chainAssetHandler())) { + if (msg.sender != address(_bridgehub()) && msg.sender != address(_bridgehub().chainAssetHandler())) { revert OnlyBridgehubOrChainAssetHandler( msg.sender, - address(BRIDGE_HUB), - address(BRIDGE_HUB.chainAssetHandler()) + address(_bridgehub()), + address(_bridgehub().chainAssetHandler()) ); } _; @@ -98,8 +93,8 @@ contract MessageRoot is IMessageRoot, Initializable { /// @notice Checks that the message sender is the specified ZK Chain. /// @param _chainId The ID of the chain that is required to be the caller. modifier onlyChain(uint256 _chainId) { - if (msg.sender != BRIDGE_HUB.getZKChain(_chainId)) { - revert OnlyChain(msg.sender, BRIDGE_HUB.getZKChain(_chainId)); + if (msg.sender != _bridgehub().getZKChain(_chainId)) { + revert OnlyChain(msg.sender, _bridgehub().getZKChain(_chainId)); } _; } @@ -112,21 +107,12 @@ contract MessageRoot is IMessageRoot, Initializable { _; } - /// @dev Contract is expected to be used as proxy implementation on L1, but as a system contract on L2. - /// This means we call the _initialize in both the constructor and the initialize functions. - /// @dev Initialize the implementation to prevent Parity hack. - /// @param _bridgehub Address of the Bridgehub. - /// @param _l1ChainId Chain ID of L1. - constructor(IBridgehub _bridgehub, uint256 _l1ChainId) { - BRIDGE_HUB = _bridgehub; - L1_CHAIN_ID = _l1ChainId; - _initialize(); - _disableInitializers(); - } - - /// @dev Initializes a contract for later use. Expected to be used in the proxy on L1, on L2 it is a system contract without a proxy. - function initialize() external initializer { - _initialize(); + /// @notice only the upgrader can call + modifier onlyUpgrader() { + if (msg.sender != L2_COMPLEX_UPGRADER_ADDR) { + revert InvalidCaller(msg.sender); + } + _; } /// @notice Adds a single chain to the message root. @@ -234,4 +220,8 @@ contract MessageRoot is IMessageRoot, Initializable { emit AddedChain(_chainId, cachedChainCount); } + + function _bridgehub() internal view virtual returns (IBridgehub); + + function _l1ChainId() internal view virtual returns (uint256); } diff --git a/l1-contracts/contracts/common/L1ContractErrors.sol b/l1-contracts/contracts/common/L1ContractErrors.sol index 90f19fe4f7..1ec1f53656 100644 --- a/l1-contracts/contracts/common/L1ContractErrors.sol +++ b/l1-contracts/contracts/common/L1ContractErrors.sol @@ -170,6 +170,8 @@ error InvalidSystemLogsLength(); error InvalidUpgradeTxn(UpgradeTxVerifyParam); // 0xfb5c22e6 error L2TimestampTooBig(); +// 0x55bde247 +error IncorrectBatchChainId(uint256, uint256); // 0x97e1359e error L2WithdrawalMessageWrongLength(uint256 messageLen); // 0x8efef97a @@ -371,6 +373,8 @@ error ZeroChainId(); // 0x601b6882 error ZKChainLimitReached(); +error InvalidChainId(); + enum SharedBridgeKey { PostUpgradeFirstBatch, LegacyBridgeFirstBatch, diff --git a/l1-contracts/contracts/common/interfaces/ISystemContext.sol b/l1-contracts/contracts/common/interfaces/ISystemContext.sol new file mode 100644 index 0000000000..ff083fd0b5 --- /dev/null +++ b/l1-contracts/contracts/common/interfaces/ISystemContext.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +// We use a floating point pragma here so it can be used within other projects that interact with the ZKsync ecosystem without using our exact pragma version. +pragma solidity ^0.8.20; + +/** + * @author Matter Labs + * @custom:security-contact security@matterlabs.dev + * @notice Contract that stores some of the context variables, that may be either + * block-scoped, tx-scoped or system-wide. + */ +interface ISystemContext { + struct BlockInfo { + uint128 timestamp; + uint128 number; + } + + /// @notice A structure representing the timeline for the upgrade from the batch numbers to the L2 block numbers. + /// @dev It will be used for the L1 batch -> L2 block migration in Q3 2023 only. + struct VirtualBlockUpgradeInfo { + /// @notice In order to maintain consistent results for `blockhash` requests, we'll + /// have to remember the number of the batch when the upgrade to the virtual blocks has been done. + /// The hashes for virtual blocks before the upgrade are identical to the hashes of the corresponding batches. + uint128 virtualBlockStartBatch; + /// @notice L2 block when the virtual blocks have caught up with the L2 blocks. Starting from this block, + /// all the information returned to users for block.timestamp/number, etc should be the information about the L2 blocks and + /// not virtual blocks. + uint128 virtualBlockFinishL2Block; + } + + function chainId() external view returns (uint256); + + function origin() external view returns (address); + + function gasPrice() external view returns (uint256); + + function blockGasLimit() external view returns (uint256); + + function coinbase() external view returns (address); + + function difficulty() external view returns (uint256); + + function baseFee() external view returns (uint256); + + function txNumberInBlock() external view returns (uint16); + + function getBlockHashEVM(uint256 _block) external view returns (bytes32); + + function getBatchHash(uint256 _batchNumber) external view returns (bytes32 hash); + + function getBlockNumber() external view returns (uint128); + + function getBlockTimestamp() external view returns (uint128); + + function getBatchNumberAndTimestamp() external view returns (uint128 blockNumber, uint128 blockTimestamp); + + function getL2BlockNumberAndTimestamp() external view returns (uint128 blockNumber, uint128 blockTimestamp); + + function gasPerPubdataByte() external view returns (uint256 gasPerPubdataByte); + + function getCurrentPubdataSpent() external view returns (uint256 currentPubdataSpent); + + function setChainId(uint256 _newChainId) external; +} diff --git a/l1-contracts/contracts/common/l2-helpers/L2ContractAddresses.sol b/l1-contracts/contracts/common/l2-helpers/L2ContractAddresses.sol index 1555ec5600..2480e67b84 100644 --- a/l1-contracts/contracts/common/l2-helpers/L2ContractAddresses.sol +++ b/l1-contracts/contracts/common/l2-helpers/L2ContractAddresses.sol @@ -75,6 +75,8 @@ address constant L2_NATIVE_TOKEN_VAULT_ADDR = address(USER_CONTRACTS_OFFSET + 0x /// @dev the address of the l2 asset router. address constant L2_MESSAGE_ROOT_ADDR = address(USER_CONTRACTS_OFFSET + 0x05); +address constant L2_WRAPPED_BASE_TOKEN_IMPL_ADDR = address(USER_CONTRACTS_OFFSET + 0x07); + /// @dev The address of the SloadContract system contract, which provides a method to read values from arbitrary storage slots address constant SLOAD_CONTRACT_ADDR = address(USER_CONTRACTS_OFFSET + 0x06); diff --git a/l1-contracts/contracts/dev-contracts/test/DummyBridgehubSetter.sol b/l1-contracts/contracts/dev-contracts/test/DummyBridgehubSetter.sol index c5ab48f865..ea59d5c988 100644 --- a/l1-contracts/contracts/dev-contracts/test/DummyBridgehubSetter.sol +++ b/l1-contracts/contracts/dev-contracts/test/DummyBridgehubSetter.sol @@ -2,18 +2,14 @@ pragma solidity 0.8.28; -import {Bridgehub} from "../../bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "../../bridgehub/L1Bridgehub.sol"; -contract DummyBridgehubSetter is Bridgehub { +contract DummyBridgehubSetter is L1Bridgehub { // add this to be excluded from coverage report function test() internal virtual {} /// @notice Constructor - constructor( - uint256 _l1ChainId, - address _owner, - uint256 _maxNumberOfZKChains - ) Bridgehub(_l1ChainId, _owner, _maxNumberOfZKChains) {} + constructor(address _owner, uint256 _maxNumberOfZKChains) L1Bridgehub(_owner, _maxNumberOfZKChains) {} function setZKChain(uint256 _chainId, address _zkChain) external { _registerNewZKChain(_chainId, _zkChain, true); diff --git a/l1-contracts/contracts/dev-contracts/test/L2NativeTokenVaultDev.sol b/l1-contracts/contracts/dev-contracts/test/L2NativeTokenVaultDev.sol index 8c377c266a..05dc1428d1 100644 --- a/l1-contracts/contracts/dev-contracts/test/L2NativeTokenVaultDev.sol +++ b/l1-contracts/contracts/dev-contracts/test/L2NativeTokenVaultDev.sol @@ -15,28 +15,6 @@ import {BridgedStandardERC20} from "contracts/bridge/BridgedStandardERC20.sol"; /// @author Matter Labs /// @notice This is used for fast debugging of the L2NTV by running it in L1 context, i.e. normal foundry instead of foundry --zksync. contract L2NativeTokenVaultDev is L2NativeTokenVault { - constructor( - uint256 _l1ChainId, - address _aliasedOwner, - bytes32 _l2TokenProxyBytecodeHash, - address _legacySharedBridge, - address _bridgedTokenBeacon, - bool _contractsDeployedAlready, - address _wethToken, - bytes32 _baseTokenAssetId - ) - L2NativeTokenVault( - _l1ChainId, - _aliasedOwner, - _l2TokenProxyBytecodeHash, - _legacySharedBridge, - _bridgedTokenBeacon, - _contractsDeployedAlready, - _wethToken, - _baseTokenAssetId - ) - {} - /// @notice copied from L1NTV for L1 compilation function calculateCreate2TokenAddress( uint256 _originChainId, diff --git a/system-contracts/contracts/ComplexUpgrader.sol b/l1-contracts/contracts/l2-upgrades/L2ComplexUpgrader.sol similarity index 78% rename from system-contracts/contracts/ComplexUpgrader.sol rename to l1-contracts/contracts/l2-upgrades/L2ComplexUpgrader.sol index 32b08d0911..266efd288a 100644 --- a/system-contracts/contracts/ComplexUpgrader.sol +++ b/l1-contracts/contracts/l2-upgrades/L2ComplexUpgrader.sol @@ -2,10 +2,12 @@ pragma solidity 0.8.28; -import {IComplexUpgrader} from "./interfaces/IComplexUpgrader.sol"; -import {ForceDeployment} from "./interfaces/IContractDeployer.sol"; -import {DEPLOYER_SYSTEM_CONTRACT, FORCE_DEPLOYER} from "./Constants.sol"; -import {AddressHasNoCode, Unauthorized} from "./SystemContractErrors.sol"; +import {IL2ContractDeployer} from "../common/interfaces/IL2ContractDeployer.sol"; +import {L2_FORCE_DEPLOYER_ADDR, L2_DEPLOYER_SYSTEM_CONTRACT_ADDR} from "../common/l2-helpers/L2ContractAddresses.sol"; +import {Unauthorized, AddressHasNoCode} from "../common/L1ContractErrors.sol"; + +import {IComplexUpgrader} from "../state-transition/l2-deps/IComplexUpgrader.sol"; + /** * @author Matter Labs @@ -13,13 +15,13 @@ import {AddressHasNoCode, Unauthorized} from "./SystemContractErrors.sol"; * @notice Upgrader which should be used to perform complex multistep upgrades on L2. In case some custom logic for an upgrade is needed * this logic should be deployed into the user space and then this contract will delegatecall to the deployed contract. */ -contract ComplexUpgrader is IComplexUpgrader { +contract L2ComplexUpgrader is IComplexUpgrader { /// @notice Ensures that only the `FORCE_DEPLOYER` can call the function. /// @dev Note that it is vital to put this modifier at the start of *each* function, /// since even temporary anauthorized access can be dangerous. modifier onlyForceDeployer() { // Note, that it is not - if (msg.sender != FORCE_DEPLOYER) { + if (msg.sender != L2_FORCE_DEPLOYER_ADDR) { revert Unauthorized(msg.sender); } _; @@ -29,16 +31,17 @@ contract ComplexUpgrader is IComplexUpgrader { /// @dev This function allows only the `FORCE_DEPLOYER` to initiate the upgrade. /// If the delegate call fails, the function will revert the transaction, returning the error message /// provided by the delegated contract. + /// @dev Compatible with Era only. /// @param _forceDeployments the list of initial deployments that should be performed before the upgrade. /// They would typically, though not necessarily include the deployment of the upgrade implementation itself. /// @param _delegateTo the address of the contract to which the calls will be delegated /// @param _calldata the calldata to be delegate called in the `_delegateTo` contract function forceDeployAndUpgrade( - ForceDeployment[] calldata _forceDeployments, + IL2ContractDeployer.ForceDeployment[] calldata _forceDeployments, address _delegateTo, bytes calldata _calldata - ) external payable override onlyForceDeployer { - DEPLOYER_SYSTEM_CONTRACT.forceDeployOnAddresses(_forceDeployments); + ) external payable onlyForceDeployer { + IL2ContractDeployer(L2_DEPLOYER_SYSTEM_CONTRACT_ADDR).forceDeployOnAddresses(_forceDeployments); upgrade(_delegateTo, _calldata); } diff --git a/l1-contracts/contracts/l2-upgrades/L2GenesisForceDeploymentsHelper.sol b/l1-contracts/contracts/l2-upgrades/L2GenesisForceDeploymentsHelper.sol new file mode 100644 index 0000000000..b093179e56 --- /dev/null +++ b/l1-contracts/contracts/l2-upgrades/L2GenesisForceDeploymentsHelper.sol @@ -0,0 +1,273 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.28; + +import {L2_CHAIN_ASSET_HANDLER_ADDR, L2_WRAPPED_BASE_TOKEN_IMPL_ADDR, L2_DEPLOYER_SYSTEM_CONTRACT_ADDR, L2_BRIDGEHUB_ADDR, L2_ASSET_ROUTER_ADDR, L2_MESSAGE_ROOT_ADDR, L2_NATIVE_TOKEN_VAULT_ADDR} from "../common/l2-helpers/L2ContractAddresses.sol"; +import {IL2ContractDeployer} from "../common/interfaces/IL2ContractDeployer.sol"; +import {ZKChainSpecificForceDeploymentsData} from "../state-transition/l2-deps/IL2GenesisUpgrade.sol"; +import {IL2WrappedBaseToken} from "../bridge/interfaces/IL2WrappedBaseToken.sol"; + +import {TransparentUpgradeableProxy} from "@openzeppelin/contracts-v4/proxy/transparent/TransparentUpgradeableProxy.sol"; + +import {L2NativeTokenVault} from "../bridge/ntv/L2NativeTokenVault.sol"; +import {L2MessageRoot} from "../bridgehub/L2MessageRoot.sol"; +import {L2Bridgehub} from "../bridgehub/L2Bridgehub.sol"; +import {L2AssetRouter} from "../bridge/asset-router/L2AssetRouter.sol"; +import {L2ChainAssetHandler} from "../bridgehub/L2ChainAssetHandler.sol"; + +import {ICTMDeploymentTracker} from "../bridgehub/ICTMDeploymentTracker.sol"; +import {IMessageRoot} from "../bridgehub/IMessageRoot.sol"; + +import {UpgradeableBeaconDeployer} from "../bridge/ntv/UpgradeableBeaconDeployer.sol"; + +import {FixedForceDeploymentsData} from "../state-transition/l2-deps/IL2GenesisUpgrade.sol"; + +address constant L2_NTV_BEACON_DEPLOYER_ADDR = address(0x000000000000000000000000000000000001000b); + +/// @title L2GenesisForceDeploymentsHelper +/// @author Matter Labs +/// @custom:security-contact security@matterlabs.dev +/// @notice A helper library for initializing and managing force-deployed contracts during either the L2 gateway upgrade or +/// the genesis after the gateway protocol upgrade. +library L2GenesisForceDeploymentsHelper { + function forceDeployEra(bytes memory _bytecodeInfo, address _newAddress) internal { + bytes32 bytecodeHash = abi.decode(_bytecodeInfo, (bytes32)); + IL2ContractDeployer.ForceDeployment[] memory forceDeployments = new IL2ContractDeployer.ForceDeployment[](1); + // Configure the MessageRoot deployment. + forceDeployments[0] = IL2ContractDeployer.ForceDeployment({ + bytecodeHash: bytecodeHash, + newAddress: _newAddress, + callConstructor: false, + value: 0, + input: hex"" + }); + + IL2ContractDeployer(L2_DEPLOYER_SYSTEM_CONTRACT_ADDR).forceDeployOnAddresses(forceDeployments); + } + + /// @notice Unified function to force deploy contracts. + /// @param _bytecodeInfo The bytecode information for deployment. + /// @param _newAddress The address where the contract should be deployed. + function forceDeployOnAddress(bytes memory _bytecodeInfo, address _newAddress) internal { + forceDeployEra(_bytecodeInfo, _newAddress); + } + + /// @notice Initializes force-deployed contracts. + /// @param _ctmDeployer Address of the CTM Deployer contract. + /// @param _fixedForceDeploymentsData Encoded data for forced deployment that + /// is the same for all the chains. + /// @param _additionalForceDeploymentsData Encoded data for force deployments that + /// is specific for each ZK Chain. + function performForceDeployedContractsInit( + address _ctmDeployer, + bytes memory _fixedForceDeploymentsData, + bytes memory _additionalForceDeploymentsData, + bool _isGenesisUpgrade + ) internal { + // Decode the fixed and additional force deployments data. + FixedForceDeploymentsData memory fixedForceDeploymentsData = abi.decode( + _fixedForceDeploymentsData, + (FixedForceDeploymentsData) + ); + ZKChainSpecificForceDeploymentsData memory additionalForceDeploymentsData = abi.decode( + _additionalForceDeploymentsData, + (ZKChainSpecificForceDeploymentsData) + ); + + forceDeployOnAddress( + fixedForceDeploymentsData.messageRootBytecodeInfo, + address(L2_MESSAGE_ROOT_ADDR) + ); + // If this is a genesis upgrade, we need to initialize the MessageRoot contract. + // We dont need to do anything for already deployed chains. + if (_isGenesisUpgrade) { + L2MessageRoot(L2_MESSAGE_ROOT_ADDR).initL2(fixedForceDeploymentsData.l1ChainId); + } + + forceDeployOnAddress(fixedForceDeploymentsData.bridgehubBytecodeInfo, address(L2_BRIDGEHUB_ADDR)); + if (_isGenesisUpgrade) { + L2Bridgehub(L2_BRIDGEHUB_ADDR).initL2( + fixedForceDeploymentsData.l1ChainId, + fixedForceDeploymentsData.aliasedL1Governance, + fixedForceDeploymentsData.maxNumberOfZKChains + ); + } else { + L2Bridgehub(L2_BRIDGEHUB_ADDR).updateL2( + fixedForceDeploymentsData.l1ChainId, + fixedForceDeploymentsData.maxNumberOfZKChains + ); + } + + // For new chains, there is no legacy shared bridge, but the already existing ones, + // we should be able to query it. + address l2LegacySharedBridge = _isGenesisUpgrade + ? address(0) + : L2AssetRouter(L2_ASSET_ROUTER_ADDR).L2_LEGACY_SHARED_BRIDGE(); + + forceDeployOnAddress( + fixedForceDeploymentsData.l2AssetRouterBytecodeInfo, + address(L2_ASSET_ROUTER_ADDR) + ); + if (_isGenesisUpgrade) { + L2AssetRouter(L2_ASSET_ROUTER_ADDR).initL2( + fixedForceDeploymentsData.l1ChainId, + fixedForceDeploymentsData.eraChainId, + fixedForceDeploymentsData.l1AssetRouter, + l2LegacySharedBridge, + additionalForceDeploymentsData.baseTokenAssetId, + fixedForceDeploymentsData.aliasedL1Governance + ); + } else { + L2AssetRouter(L2_ASSET_ROUTER_ADDR).updateL2( + fixedForceDeploymentsData.l1ChainId, + fixedForceDeploymentsData.eraChainId, + fixedForceDeploymentsData.l1AssetRouter, + l2LegacySharedBridge, + additionalForceDeploymentsData.baseTokenAssetId + ); + } + + address predeployedL2WethAddress = _isGenesisUpgrade + ? address(0) + : L2NativeTokenVault(L2_NATIVE_TOKEN_VAULT_ADDR).WETH_TOKEN(); + bytes32 previousL2TokenProxyBytecodeHash = _isGenesisUpgrade + ? bytes32(0) + : L2NativeTokenVault(L2_NATIVE_TOKEN_VAULT_ADDR).L2_TOKEN_PROXY_BYTECODE_HASH(); + + // Ensure the WETH token is deployed and retrieve its address. + address wrappedBaseTokenAddress = _ensureWethToken({ + _predeployedWethToken: predeployedL2WethAddress, + _aliasedL1Governance: fixedForceDeploymentsData.aliasedL1Governance, + _baseTokenL1Address: additionalForceDeploymentsData.baseTokenL1Address, + _baseTokenAssetId: additionalForceDeploymentsData.baseTokenAssetId, + _baseTokenName: additionalForceDeploymentsData.baseTokenName, + _baseTokenSymbol: additionalForceDeploymentsData.baseTokenSymbol + }); + + // Now initialiazing the upgradeable token beacon + forceDeployOnAddress(fixedForceDeploymentsData.l2NtvBytecodeInfo, L2_NATIVE_TOKEN_VAULT_ADDR); + + if (_isGenesisUpgrade) { + address deployedTokenBeacon; + // In production, the `fixedForceDeploymentsData.dangerousTestOnlyForcedBeacon` must always + // be equal to 0. It is only for simplifying testing. + if (fixedForceDeploymentsData.dangerousTestOnlyForcedBeacon == address(0)) { + // We need to deploy tbe beacon, we will use a separate contract for that to save + // up on size of this contract. + forceDeployOnAddress( + fixedForceDeploymentsData.beaconDeployerInfo, + L2_NTV_BEACON_DEPLOYER_ADDR + ); + + deployedTokenBeacon = UpgradeableBeaconDeployer(L2_NTV_BEACON_DEPLOYER_ADDR).deployUpgradeableBeacon( + fixedForceDeploymentsData.aliasedL1Governance + ); + } else { + deployedTokenBeacon = fixedForceDeploymentsData.dangerousTestOnlyForcedBeacon; + } + + } else { + L2NativeTokenVault(L2_NATIVE_TOKEN_VAULT_ADDR).updateL2( + fixedForceDeploymentsData.l1ChainId, + previousL2TokenProxyBytecodeHash, + l2LegacySharedBridge, + wrappedBaseTokenAddress, + additionalForceDeploymentsData.baseTokenAssetId + ); + } + + forceDeployOnAddress( + fixedForceDeploymentsData.chainAssetHandlerBytecodeInfo, + address(L2_CHAIN_ASSET_HANDLER_ADDR) + ); + if (_isGenesisUpgrade) { + L2ChainAssetHandler(L2_CHAIN_ASSET_HANDLER_ADDR).initL2( + fixedForceDeploymentsData.l1ChainId, + fixedForceDeploymentsData.aliasedL1Governance, + L2Bridgehub(L2_BRIDGEHUB_ADDR), + L2_ASSET_ROUTER_ADDR, + L2MessageRoot(L2_MESSAGE_ROOT_ADDR) + ); + } else { + L2ChainAssetHandler(L2_CHAIN_ASSET_HANDLER_ADDR).updateL2( + fixedForceDeploymentsData.l1ChainId, + L2Bridgehub(L2_BRIDGEHUB_ADDR), + L2_ASSET_ROUTER_ADDR, + L2MessageRoot(L2_MESSAGE_ROOT_ADDR) + ); + } + + // It is expected that either through the force deployments above + // or upon initialization, both the L2 deployment of BridgeHub, AssetRouter, and MessageRoot are deployed. + // However, there is still some follow-up finalization that needs to be done. + L2Bridgehub(L2_BRIDGEHUB_ADDR).setAddresses( + L2_ASSET_ROUTER_ADDR, + ICTMDeploymentTracker(_ctmDeployer), + IMessageRoot(L2_MESSAGE_ROOT_ADDR), + L2_CHAIN_ASSET_HANDLER_ADDR + ); + } + + /// @notice Constructs the initialization calldata for the L2WrappedBaseToken. + /// @param _wrappedBaseTokenName The name of the wrapped base token. + /// @param _wrappedBaseTokenSymbol The symbol of the wrapped base token. + /// @param _baseTokenL1Address The L1 address of the base token. + /// @param _baseTokenAssetId The asset ID of the base token. + /// @return initData The encoded initialization calldata. + function getWethInitData( + string memory _wrappedBaseTokenName, + string memory _wrappedBaseTokenSymbol, + address _baseTokenL1Address, + bytes32 _baseTokenAssetId + ) internal pure returns (bytes memory initData) { + initData = abi.encodeCall( + IL2WrappedBaseToken.initializeV3, + ( + _wrappedBaseTokenName, + _wrappedBaseTokenSymbol, + L2_ASSET_ROUTER_ADDR, + _baseTokenL1Address, + _baseTokenAssetId + ) + ); + } + + /// @notice Ensures that the WETH token is deployed. If not predeployed, deploys it. + /// @param _predeployedWethToken The potential address of the predeployed WETH token. + /// @param _aliasedL1Governance Address of the aliased L1 governance. + /// @param _baseTokenL1Address L1 address of the base token. + /// @param _baseTokenAssetId Asset ID of the base token. + /// @param _baseTokenName Name of the base token. + /// @param _baseTokenSymbol Symbol of the base token. + /// @return The address of the ensured WETH token. + function _ensureWethToken( + address _predeployedWethToken, + address _aliasedL1Governance, + address _baseTokenL1Address, + bytes32 _baseTokenAssetId, + string memory _baseTokenName, + string memory _baseTokenSymbol + ) private returns (address) { + if (_predeployedWethToken != address(0)) { + return _predeployedWethToken; + } + + string memory wrappedBaseTokenName = string.concat("Wrapped ", _baseTokenName); + string memory wrappedBaseTokenSymbol = string.concat("W", _baseTokenSymbol); + + bytes memory initData = getWethInitData( + wrappedBaseTokenName, + wrappedBaseTokenSymbol, + _baseTokenL1Address, + _baseTokenAssetId + ); + + TransparentUpgradeableProxy proxy = new TransparentUpgradeableProxy{salt: bytes32(0)}( + L2_WRAPPED_BASE_TOKEN_IMPL_ADDR, + _aliasedL1Governance, + initData + ); + + return address(proxy); + } +} diff --git a/system-contracts/contracts/L2GenesisUpgrade.sol b/l1-contracts/contracts/l2-upgrades/L2GenesisUpgrade.sol similarity index 76% rename from system-contracts/contracts/L2GenesisUpgrade.sol rename to l1-contracts/contracts/l2-upgrades/L2GenesisUpgrade.sol index 60bfe14171..25dbbf5cd1 100644 --- a/system-contracts/contracts/L2GenesisUpgrade.sol +++ b/l1-contracts/contracts/l2-upgrades/L2GenesisUpgrade.sol @@ -2,13 +2,12 @@ pragma solidity 0.8.28; -import {SYSTEM_CONTEXT_CONTRACT} from "./Constants.sol"; -import {ISystemContext} from "./interfaces/ISystemContext.sol"; -import {InvalidChainId} from "contracts/SystemContractErrors.sol"; -import {IL2GenesisUpgrade} from "./interfaces/IL2GenesisUpgrade.sol"; +import {IL2GenesisUpgrade} from "../state-transition/l2-deps/IL2GenesisUpgrade.sol"; import {L2GenesisForceDeploymentsHelper} from "./L2GenesisForceDeploymentsHelper.sol"; +import {InvalidChainId} from "../common/L1ContractErrors.sol"; + /// @custom:security-contact security@matterlabs.dev /// @author Matter Labs /// @notice The l2 component of the genesis upgrade. @@ -28,12 +27,12 @@ contract L2GenesisUpgrade is IL2GenesisUpgrade { if (_chainId == 0) { revert InvalidChainId(); } - ISystemContext(SYSTEM_CONTEXT_CONTRACT).setChainId(_chainId); L2GenesisForceDeploymentsHelper.performForceDeployedContractsInit( _ctmDeployer, _fixedForceDeploymentsData, - _additionalForceDeploymentsData + _additionalForceDeploymentsData, + true ); emit UpgradeComplete(_chainId); diff --git a/l1-contracts/contracts/state-transition/ChainTypeManager.sol b/l1-contracts/contracts/state-transition/ChainTypeManager.sol index c80e492691..04830f8c88 100644 --- a/l1-contracts/contracts/state-transition/ChainTypeManager.sol +++ b/l1-contracts/contracts/state-transition/ChainTypeManager.sol @@ -14,9 +14,9 @@ import {ChainCreationParams, ChainTypeManagerInitializeData, IChainTypeManager} import {IZKChain} from "./chain-interfaces/IZKChain.sol"; import {FeeParams} from "./chain-deps/ZKChainStorage.sol"; import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable-v4/access/Ownable2StepUpgradeable.sol"; -import {DEFAULT_L2_LOGS_TREE_ROOT_HASH, EMPTY_STRING_KECCAK, L2_TO_L1_LOG_SERIALIZE_SIZE} from "../common/Config.sol"; -import {AdminZero, InitialForceDeploymentMismatch, OutdatedProtocolVersion} from "./L1StateTransitionErrors.sol"; -import {ChainAlreadyLive, GenesisBatchCommitmentZero, GenesisBatchHashZero, GenesisIndexStorageZero, GenesisUpgradeZero, HashMismatch, MigrationsNotPaused, Unauthorized, ZeroAddress} from "../common/L1ContractErrors.sol"; +import {L2_TO_L1_LOG_SERIALIZE_SIZE, DEFAULT_L2_LOGS_TREE_ROOT_HASH, EMPTY_STRING_KECCAK} from "../common/Config.sol"; +import {InitialForceDeploymentMismatch, AdminZero, OutdatedProtocolVersion} from "./L1StateTransitionErrors.sol"; +import {ChainAlreadyLive, Unauthorized, ZeroAddress, HashMismatch, GenesisUpgradeZero, GenesisBatchHashZero, GenesisBatchCommitmentZero, MigrationsNotPaused} from "../common/L1ContractErrors.sol"; import {SemVer} from "../common/libraries/SemVer.sol"; import {IBridgehub} from "../bridgehub/IBridgehub.sol"; @@ -167,9 +167,6 @@ contract ChainTypeManager is IChainTypeManager, ReentrancyGuard, Ownable2StepUpg if (_chainCreationParams.genesisBatchHash == bytes32(0)) { revert GenesisBatchHashZero(); } - if (_chainCreationParams.genesisIndexRepeatedStorageChanges == uint64(0)) { - revert GenesisIndexStorageZero(); - } if (_chainCreationParams.genesisBatchCommitment == bytes32(0)) { revert GenesisBatchCommitmentZero(); } diff --git a/l1-contracts/contracts/state-transition/chain-deps/DiamondInit.sol b/l1-contracts/contracts/state-transition/chain-deps/DiamondInit.sol index 9bb6359322..08936fa2fb 100644 --- a/l1-contracts/contracts/state-transition/chain-deps/DiamondInit.sol +++ b/l1-contracts/contracts/state-transition/chain-deps/DiamondInit.sol @@ -23,7 +23,9 @@ contract DiamondInit is ZKChainBase, IDiamondInit { /// @notice ZK chain diamond contract initialization /// @return Magic 32 bytes, which indicates that the contract logic is expected to be used as a diamond proxy /// initializer - function initialize(InitializeData calldata _initializeData) external reentrancyGuardInitializer returns (bytes32) { + function initialize( + InitializeData calldata _initializeData + ) public virtual reentrancyGuardInitializer returns (bytes32) { if (address(_initializeData.verifier) == address(0)) { revert ZeroAddress(); } diff --git a/l1-contracts/contracts/state-transition/chain-deps/facets/Executor.sol b/l1-contracts/contracts/state-transition/chain-deps/facets/Executor.sol index e9c8354901..128387de09 100644 --- a/l1-contracts/contracts/state-transition/chain-deps/facets/Executor.sol +++ b/l1-contracts/contracts/state-transition/chain-deps/facets/Executor.sol @@ -603,12 +603,13 @@ contract ExecutorFacet is ZKChainBase, IExecutor { } /// @inheritdoc IExecutor + // Warning: removed onlyValidator - to make this permisionless. function executeBatchesSharedBridge( address, // _chainAddress uint256 _processFrom, uint256 _processTo, bytes calldata _executeData - ) external nonReentrant onlyValidator onlySettlementLayer { + ) external nonReentrant onlySettlementLayer { ( StoredBatchInfo[] memory batchesData, PriorityOpsBatchInfo[] memory priorityOpsData, @@ -638,12 +639,13 @@ contract ExecutorFacet is ZKChainBase, IExecutor { } /// @inheritdoc IExecutor + // Warning: removed onlyValidator to make it permisionless. function proveBatchesSharedBridge( address, // _chainAddress uint256 _processBatchFrom, uint256 _processBatchTo, bytes calldata _proofData - ) external nonReentrant onlyValidator onlySettlementLayer { + ) external nonReentrant onlySettlementLayer { ( StoredBatchInfo memory prevBatch, StoredBatchInfo[] memory committedBatches, @@ -677,7 +679,7 @@ contract ExecutorFacet is ZKChainBase, IExecutor { } bytes32 currentBatchCommitment = committedBatches[i].commitment; - proofPublicInput[i] = _getBatchProofPublicInput(prevBatchCommitment, currentBatchCommitment); + proofPublicInput[i] = _getBatchProofPublicInput(prevBatchCommitment, currentBatchCommitment); prevBatchCommitment = currentBatchCommitment; } diff --git a/l1-contracts/contracts/state-transition/l2-deps/IComplexUpgrader.sol b/l1-contracts/contracts/state-transition/l2-deps/IComplexUpgrader.sol index c65c42fc84..55096a47d8 100644 --- a/l1-contracts/contracts/state-transition/l2-deps/IComplexUpgrader.sol +++ b/l1-contracts/contracts/state-transition/l2-deps/IComplexUpgrader.sol @@ -6,6 +6,13 @@ import {IL2ContractDeployer} from "../../common/interfaces/IL2ContractDeployer.s /// @author Matter Labs /// @custom:security-contact security@matterlabs.dev interface IComplexUpgrader { + + /// @notice Executes an upgrade process by delegating calls to another contract. + /// @dev Compatible with Era only. + /// @param _forceDeployments the list of initial deployments that should be performed before the upgrade. + /// They would typically, though not necessarily include the deployment of the upgrade implementation itself. + /// @param _delegateTo the address of the contract to which the calls will be delegated + /// @param _calldata the calldata to be delegate called in the `_delegateTo` contract function forceDeployAndUpgrade( IL2ContractDeployer.ForceDeployment[] calldata _forceDeployments, address _delegateTo, diff --git a/l1-contracts/contracts/state-transition/l2-deps/IL2GenesisUpgrade.sol b/l1-contracts/contracts/state-transition/l2-deps/IL2GenesisUpgrade.sol index 704fe916c5..eb3954b1f4 100644 --- a/l1-contracts/contracts/state-transition/l2-deps/IL2GenesisUpgrade.sol +++ b/l1-contracts/contracts/state-transition/l2-deps/IL2GenesisUpgrade.sol @@ -38,11 +38,12 @@ struct FixedForceDeploymentsData { bytes32 l2TokenProxyBytecodeHash; address aliasedL1Governance; uint256 maxNumberOfZKChains; - bytes32 bridgehubBytecodeHash; - bytes32 l2AssetRouterBytecodeHash; - bytes32 l2NtvBytecodeHash; - bytes32 messageRootBytecodeHash; - bytes32 chainAssetHandlerBytecodeHash; + bytes bridgehubBytecodeInfo; + bytes l2AssetRouterBytecodeInfo; + bytes l2NtvBytecodeInfo; + bytes messageRootBytecodeInfo; + bytes chainAssetHandlerBytecodeInfo; + bytes beaconDeployerInfo; address l2SharedBridgeLegacyImpl; address l2BridgedStandardERC20Impl; // The forced beacon address. It is needed only for internal testing. diff --git a/l1-contracts/contracts/state-transition/verifiers/L1VerifierPlonk.sol b/l1-contracts/contracts/state-transition/verifiers/L1VerifierPlonk.sol index 8652d4fe95..be663baad1 100644 --- a/l1-contracts/contracts/state-transition/verifiers/L1VerifierPlonk.sol +++ b/l1-contracts/contracts/state-transition/verifiers/L1VerifierPlonk.sol @@ -9,7 +9,7 @@ import {IVerifier} from "../chain-interfaces/IVerifier.sol"; /// @notice Modified version of the Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of /// Knowledge (PLONK) verifier. /// Modifications have been made to optimize the proof system for ZK chain circuits. -/// @dev Contract was generated from a verification key with a hash of 0x64b347c642ea60114c98b3976124ea8a7e0bb778bd7e479aedc02f994486c8a1 +/// @dev Contract was generated from a verification key with a hash of 0x595e5edc07c0357b1c3c0db2306a1cc55e42990c552dc3dd5480b73ded92f007 /// @dev It uses a custom memory layout inside the inline assembly block. Each reserved memory cell is declared in the /// constants below. /// @dev For a better understanding of the verifier algorithm please refer to the following papers: @@ -251,10 +251,10 @@ contract L1VerifierPlonk is IVerifier { uint256 internal constant G2_ELEMENTS_0_X2 = 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed; uint256 internal constant G2_ELEMENTS_0_Y1 = 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b; uint256 internal constant G2_ELEMENTS_0_Y2 = 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa; - uint256 internal constant G2_ELEMENTS_1_X1 = 0x260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c1; - uint256 internal constant G2_ELEMENTS_1_X2 = 0x0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b0; - uint256 internal constant G2_ELEMENTS_1_Y1 = 0x04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe4; - uint256 internal constant G2_ELEMENTS_1_Y2 = 0x22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e55; + uint256 internal constant G2_ELEMENTS_1_X1 = 0x12740934ba9615b77b6a49b06fcce83ce90d67b1d0e2a530069e3a7306569a91; + uint256 internal constant G2_ELEMENTS_1_X2 = 0x116da8c89a0d090f3d8644ada33a5f1c8013ba7204aeca62d66d931b99afe6e7; + uint256 internal constant G2_ELEMENTS_1_Y1 = 0x25222d9816e5f86b4a7dedd00d04acc5c979c18bd22b834ea8c6d07c0ba441db; + uint256 internal constant G2_ELEMENTS_1_Y2 = 0x076441042e77b6309644b56251f059cf14befc72ac8a6157d30924e58dc4c172; /// @inheritdoc IVerifier function verificationKeyHash() external pure returns (bytes32 vkHash) { @@ -284,56 +284,56 @@ contract L1VerifierPlonk is IVerifier { function _loadVerificationKey() internal pure virtual { assembly { // gate setup commitments - mstore(VK_GATE_SETUP_0_X_SLOT, 0x0d66d491183c1da0596ff2f1ead5fb08117e947eba0bc018214464d5157dc84d) - mstore(VK_GATE_SETUP_0_Y_SLOT, 0x005ae6dd3b955bdee772718f85d3011bd3eec6695dfeaef524a9ea89af4a4398) - mstore(VK_GATE_SETUP_1_X_SLOT, 0x04659caf7b05471ba5ba85b1ab62267aa6c456836e625f169f7119d55b9462d2) - mstore(VK_GATE_SETUP_1_Y_SLOT, 0x0ea63403692148d2ad22189a1e5420076312f4d46e62036a043a6b0b84d5b410) - mstore(VK_GATE_SETUP_2_X_SLOT, 0x0e6696d09d65fce1e42805be03fca1f14aea247281f688981f925e77d4ce2291) - mstore(VK_GATE_SETUP_2_Y_SLOT, 0x0228f6cf8fe20c1e07e5b78bf8c41d50e55975a126d22a198d1e56acd4bbb3dd) - mstore(VK_GATE_SETUP_3_X_SLOT, 0x14685dafe340b1dec5eafcd5e7faddaf24f3781ddc53309cc25d0b42c00541dd) - mstore(VK_GATE_SETUP_3_Y_SLOT, 0x0e651cff9447cb360198899b80fa23e89ec13bc94ff161729aa841d2b55ea5be) - mstore(VK_GATE_SETUP_4_X_SLOT, 0x16e9ef76cb68f2750eb0ee72382dd9911a982308d0ab10ef94dada13c382ae73) - mstore(VK_GATE_SETUP_4_Y_SLOT, 0x22e404bc91350f3bc7daad1d1025113742436983c85eac5ab7b42221a181b81e) - mstore(VK_GATE_SETUP_5_X_SLOT, 0x0d9b29613037a5025655c82b143d2b7449c98f3aea358307c8529249cc54f3b9) - mstore(VK_GATE_SETUP_5_Y_SLOT, 0x15b3c4c946ad1babfc4c03ff7c2423fd354af3a9305c499b7fb3aaebe2fee746) - mstore(VK_GATE_SETUP_6_X_SLOT, 0x0f2f98f08f99edc5e1131b38feb32649d59783b5f3e9ce49bf76c4e94fc45e7a) - mstore(VK_GATE_SETUP_6_Y_SLOT, 0x072f6cb8958d63e349e9863a227203bca4158f8e8907bb67f99286c1c930ce05) - mstore(VK_GATE_SETUP_7_X_SLOT, 0x283344a1ab3e55ecfd904d0b8e9f4faea338df5a4ead2fa9a42f0e103da40abc) - mstore(VK_GATE_SETUP_7_Y_SLOT, 0x223b37b83b9687512d322993edd70e508dd80adb10bcf7321a3cc8a44c269521) + mstore(VK_GATE_SETUP_0_X_SLOT, 0x13cc13090383e35b01902a289a0bff5dfec6dcbf574f905d5d6eac8b83c2edf8) + mstore(VK_GATE_SETUP_0_Y_SLOT, 0x1f3559aaf63b395c935b62a3375ab7ab50d7afd2e01c2e7a49e770b45ebfd01c) + mstore(VK_GATE_SETUP_1_X_SLOT, 0x1d77d4ea07c972f1576506abe3b291463fe38958ec53eff7aca0a289a869925c) + mstore(VK_GATE_SETUP_1_Y_SLOT, 0x073df5ffc2d97bc6ddabea4a175669f79c01628a6649ea9a8dd688fff44daf10) + mstore(VK_GATE_SETUP_2_X_SLOT, 0x1017e5b25793729d439883929fc91822997be1e55bdde959da1721c0230b9c5c) + mstore(VK_GATE_SETUP_2_Y_SLOT, 0x067d2da7aa9aa1df08c294ec1ed5215d009498903f326717747dba4e3283901b) + mstore(VK_GATE_SETUP_3_X_SLOT, 0x0f77cf1e63aa22b42dec383b97e91d76aaf6ab54b00a161da2d58d3af813083a) + mstore(VK_GATE_SETUP_3_Y_SLOT, 0x17c1cb39a09d6278c2f1062814ea9fc942ea3b0b949a0c2f3a3eec92198822fe) + mstore(VK_GATE_SETUP_4_X_SLOT, 0x2a0d8405d1f2cb4dd1cd5978582fec1d7c5d7d3124765903d334c132dcb6c657) + mstore(VK_GATE_SETUP_4_Y_SLOT, 0x0bc696db583d6e7e02e21b1e23898fe5464b7cf73d7d5d3fb3f818fa97406662) + mstore(VK_GATE_SETUP_5_X_SLOT, 0x2fa117c24873bdb05112f3e6fa1844f574b6c0ea0c1fae91af8ae85eb49fe0c6) + mstore(VK_GATE_SETUP_5_Y_SLOT, 0x247eb032668c2eb6e7e5f201a3538d3d73b4e35a315d79752e6a75cc85c89660) + mstore(VK_GATE_SETUP_6_X_SLOT, 0x2e0ac040ebdad597ab8af82e88a338a224228179333091113eb7490da256e80e) + mstore(VK_GATE_SETUP_6_Y_SLOT, 0x0b2ab101cd2fc2d286940b8ebcc66c912ed51636b774ec5ce926e4cfccdea25d) + mstore(VK_GATE_SETUP_7_X_SLOT, 0x1a25a81461ae735ce1965875d211bd5af89117edc5bb61fa5b70ff7e2fe86cf9) + mstore(VK_GATE_SETUP_7_Y_SLOT, 0x1b7003b716a4eb2878092ebad74ea172f85925d282a54fe45526c7027fad3fb2) // gate selectors commitments - mstore(VK_GATE_SELECTORS_0_X_SLOT, 0x1f67f0ba5f7e837bc680acb4e612ebd938ad35211aa6e05b96cad19e66b82d2d) - mstore(VK_GATE_SELECTORS_0_Y_SLOT, 0x2820641a84d2e8298ac2ac42bd4b912c0c37f768ecc83d3a29e7c720763d15a1) - mstore(VK_GATE_SELECTORS_1_X_SLOT, 0x0353257957562270292a17860ca8e8827703f828f440ee004848b1e23fdf9de2) - mstore(VK_GATE_SELECTORS_1_Y_SLOT, 0x305f4137fee253dff8b2bfe579038e8f25d5bd217865072af5d89fc8800ada24) + mstore(VK_GATE_SELECTORS_0_X_SLOT, 0x0ca7054c8f56f9d200624dff1f79190b278303bc9047a0a34dfcc9f9cc41671c) + mstore(VK_GATE_SELECTORS_0_Y_SLOT, 0x0d410942efb5a571d81d3744873700bb13d8efb96bc8ad219412fb04a65bf938) + mstore(VK_GATE_SELECTORS_1_X_SLOT, 0x26f0ea3182623f23f3baabc1c947f33a60c272d4547379a265ef9db38833be98) + mstore(VK_GATE_SELECTORS_1_Y_SLOT, 0x1faf4c48c3e4f1850fe646ad9c83655ec8af256db89d90193d7976cd1bf810a6) // permutation commitments - mstore(VK_PERMUTATION_0_X_SLOT, 0x13a600154b369ff3237706d00948e465ee1c32c7a6d3e18bccd9c4a15910f2e5) - mstore(VK_PERMUTATION_0_Y_SLOT, 0x138aa24fbf4cdddc75114811b3d59040394c218ecef3eb46ef9bd646f7e53776) - mstore(VK_PERMUTATION_1_X_SLOT, 0x277fff1f80c409357e2d251d79f6e3fd2164b755ce69cfd72de5c690289df662) - mstore(VK_PERMUTATION_1_Y_SLOT, 0x25235588e28c70eea3e35531c80deac25cd9b53ea3f98993f120108bc7abf670) - mstore(VK_PERMUTATION_2_X_SLOT, 0x0990e07a9b001048b947d0e5bd6157214c7359b771f01bf52bd771ba563a900e) - mstore(VK_PERMUTATION_2_Y_SLOT, 0x05e5fb090dd40914c8606d875e301167ae3047d684a02b44d9d36f1eaf43d0b4) - mstore(VK_PERMUTATION_3_X_SLOT, 0x1d4656690b33299db5631401a282afab3e16c78ee2c9ad9efea628171dcbc6bc) - mstore(VK_PERMUTATION_3_Y_SLOT, 0x0ebda2ebe582f601f813ec1e3970d13ef1500c742a85cce9b7f190f333de03b0) + mstore(VK_PERMUTATION_0_X_SLOT, 0x21fa04636d4320ee7670f9a059ec58d4db4c197b7362ae5119ed893d0eb35192) + mstore(VK_PERMUTATION_0_Y_SLOT, 0x1f889fe9ef407aa64058b35f04879b538cdb0fbfcfb88197e2c5f46b7d31fe70) + mstore(VK_PERMUTATION_1_X_SLOT, 0x1bc34e391503202fbff984b26bfdcd77ca9f6926d2bc936950261db76f876875) + mstore(VK_PERMUTATION_1_Y_SLOT, 0x14412991b96f6d163bfa2f36c63b4571160afaa90ab84d08e79ce836929d8a8b) + mstore(VK_PERMUTATION_2_X_SLOT, 0x03521a9b7034742016e8ca20efc91b5f94605b7189f86f87c201626642cac415) + mstore(VK_PERMUTATION_2_Y_SLOT, 0x0d37b174671a29ee5f814fee34c7312eabd18a202b163bd040cd29d878adc0fe) + mstore(VK_PERMUTATION_3_X_SLOT, 0x0983f347047dc3789775b4ef7d86600617504d5035c9e4be1fb7d59d9f3363cb) + mstore(VK_PERMUTATION_3_Y_SLOT, 0x1374500362beb03a127bcc5363f4713f283bf4b4ea084837dec49e528a8a401e) // lookup tables commitments - mstore(VK_LOOKUP_TABLE_0_X_SLOT, 0x2c513ed74d9d57a5ec901e074032741036353a2c4513422e96e7b53b302d765b) - mstore(VK_LOOKUP_TABLE_0_Y_SLOT, 0x04dd964427e430f16004076d708c0cb21e225056cc1d57418cfbd3d472981468) - mstore(VK_LOOKUP_TABLE_1_X_SLOT, 0x1ea83e5e65c6f8068f4677e2911678cf329b28259642a32db1f14b8347828aac) - mstore(VK_LOOKUP_TABLE_1_Y_SLOT, 0x1d22bc884a2da4962a893ba8de13f57aaeb785ed52c5e686994839cab8f7475d) - mstore(VK_LOOKUP_TABLE_2_X_SLOT, 0x0b2e7212d0d9cff26d0bdf3d79b2cac029a25dfeb1cafdf49e2349d7db348d89) - mstore(VK_LOOKUP_TABLE_2_Y_SLOT, 0x1301f9b252419ea240eb67fda720ca0b16d92364027285f95e9b1349490fa283) - mstore(VK_LOOKUP_TABLE_3_X_SLOT, 0x02f7b99fdfa5b418548c2d777785820e02383cfc87e7085e280a375a358153bf) - mstore(VK_LOOKUP_TABLE_3_Y_SLOT, 0x09d004fe08dc4d19c382df36fad22ef676185663543703e6a4b40203e50fd8a6) + mstore(VK_LOOKUP_TABLE_0_X_SLOT, 0x1cec72c7b964a66a1096fbaf04a918e5f52a2591778651a40c75b4d745f1652d) + mstore(VK_LOOKUP_TABLE_0_Y_SLOT, 0x01c202f2f69868ac9d52a892afc6e759ead849f516a7fd6e498212fd28528aea) + mstore(VK_LOOKUP_TABLE_1_X_SLOT, 0x018c75924a60f3e1ea03b28687f431326fd50d3a015dc963608e7bb8977a45bd) + mstore(VK_LOOKUP_TABLE_1_Y_SLOT, 0x2d501e77a8bf319ccd959bc9c4b8fcc34ae58038b9cd3dd7a2d9cbd61e6d3539) + mstore(VK_LOOKUP_TABLE_2_X_SLOT, 0x223932e9fdb5e882f17238d5aca48f33827a80e4dd3da9298236fd6b0e433c78) + mstore(VK_LOOKUP_TABLE_2_Y_SLOT, 0x2b1a46c95a61a4a57400f71f7bc0d32171f7b71843fd7811e2b898bcae37f9a9) + mstore(VK_LOOKUP_TABLE_3_X_SLOT, 0x047164444b55589ea580f47acfaa30b9f09829cfffba57fc746decaa92b21a56) + mstore(VK_LOOKUP_TABLE_3_Y_SLOT, 0x17f413c0292cd761a73a579064b84f08f542879c41799f0921086aa444a04f12) // lookup selector commitment - mstore(VK_LOOKUP_SELECTOR_X_SLOT, 0x2f4d347c7fb61daaadfff881e24f4b5dcfdc0d70a95bcb148168b90ef93e0007) - mstore(VK_LOOKUP_SELECTOR_Y_SLOT, 0x2322632465ba8e28cd0a4befd813ea85a972f4f6fa8e8603cf5d062dbcb14065) + mstore(VK_LOOKUP_SELECTOR_X_SLOT, 0x2fb1c20520008a9013c67a8be3fc945d1be4d9e5dd4e54226698a66f01362cc6) + mstore(VK_LOOKUP_SELECTOR_Y_SLOT, 0x1805d89bd2a63759732764a5170b7843bd82477e6dcc064f44d397c4b63872ba) // table type commitment - mstore(VK_LOOKUP_TABLE_TYPE_X_SLOT, 0x1e3c9fc98c118e4bc34f1f93d214a5d86898e980c40d8e2c180c6ada377a7467) - mstore(VK_LOOKUP_TABLE_TYPE_Y_SLOT, 0x2260a13535c35a15c173f5e5797d4b675b55d164a9995bfb7624971324bd84a8) + mstore(VK_LOOKUP_TABLE_TYPE_X_SLOT, 0x0d2f235e409047ee7c5536c2fb9b862c3b2a1054575894012d09c442c36ac523) + mstore(VK_LOOKUP_TABLE_TYPE_Y_SLOT, 0x12d98efa2fa2bc5987d622edd1f840824227e21087ff417bad919d1e789a8665) // flag for using recursive part mstore(VK_RECURSIVE_FLAG_SLOT, 0) diff --git a/l1-contracts/contracts/state-transition/verifiers/L2VerifierPlonk.sol b/l1-contracts/contracts/state-transition/verifiers/L2VerifierPlonk.sol index e76564c74f..8437b5bb84 100644 --- a/l1-contracts/contracts/state-transition/verifiers/L2VerifierPlonk.sol +++ b/l1-contracts/contracts/state-transition/verifiers/L2VerifierPlonk.sol @@ -9,7 +9,7 @@ import {IVerifier} from "../chain-interfaces/IVerifier.sol"; /// @notice Modified version of the Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of /// Knowledge (PLONK) verifier. /// Modifications have been made to optimize the proof system for ZK chain circuits. -/// @dev Contract was generated from a verification key with a hash of 0x64b347c642ea60114c98b3976124ea8a7e0bb778bd7e479aedc02f994486c8a1 +/// @dev Contract was generated from a verification key with a hash of 0x5a091e307e516869a79fa79db2aa70865fe606adb6d9ac16e6426d2b7b8530ac /// @dev It uses a custom memory layout inside the inline assembly block. Each reserved memory cell is declared in the /// constants below. /// @dev For a better understanding of the verifier algorithm please refer to the following papers: diff --git a/l1-contracts/contracts/upgrades/L1GenesisUpgrade.sol b/l1-contracts/contracts/upgrades/L1GenesisUpgrade.sol index a9835d9c1d..26579c91b9 100644 --- a/l1-contracts/contracts/upgrades/L1GenesisUpgrade.sol +++ b/l1-contracts/contracts/upgrades/L1GenesisUpgrade.sol @@ -18,7 +18,6 @@ import {SemVer} from "../common/libraries/SemVer.sol"; import {IBridgehub} from "../bridgehub/IBridgehub.sol"; import {VerifierParams} from "../state-transition/chain-interfaces/IVerifier.sol"; -import {L2ContractHelper} from "../common/l2-helpers/L2ContractHelper.sol"; import {L1FixedForceDeploymentsHelper} from "./L1FixedForceDeploymentsHelper.sol"; /// @author Matter Labs @@ -78,7 +77,7 @@ contract L1GenesisUpgrade is IL1GenesisUpgrade, BaseZkSyncUpgradeGenesis, L1Fixe reserved: [uint256(0), 0, 0, 0], data: complexUpgraderCalldata, signature: new bytes(0), - factoryDeps: L2ContractHelper.hashFactoryDeps(_factoryDeps), + factoryDeps: new uint256[](0), paymasterInput: new bytes(0), reservedDynamic: new bytes(0) }); diff --git a/l1-contracts/deploy-script-config-template/config-deploy-l1.toml b/l1-contracts/deploy-script-config-template/config-deploy-l1.toml index c769e84d2d..f4b5f66fbc 100644 --- a/l1-contracts/deploy-script-config-template/config-deploy-l1.toml +++ b/l1-contracts/deploy-script-config-template/config-deploy-l1.toml @@ -2,6 +2,7 @@ era_chain_id = 9 owner_address = "0x70997970C51812dc3A010C7d01b50e0d17dc79C8" testnet_verifier = true support_l2_legacy_shared_bridge_test = false +is_zk_sync_os = true [gateway] chain_id = 123 diff --git a/l1-contracts/deploy-scripts/AdminFunctions.s.sol b/l1-contracts/deploy-scripts/AdminFunctions.s.sol index 31a5d63e29..ef82394d84 100644 --- a/l1-contracts/deploy-scripts/AdminFunctions.s.sol +++ b/l1-contracts/deploy-scripts/AdminFunctions.s.sol @@ -23,8 +23,8 @@ import {PubdataPricingMode} from "contracts/state-transition/chain-deps/ZKChainS import {GatewayTransactionFilterer} from "contracts/transactionFilterer/GatewayTransactionFilterer.sol"; import {ServerNotifier} from "contracts/governance/ServerNotifier.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; -import {BridgehubBurnCTMAssetData, IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; +import {IBridgehub, BridgehubBurnCTMAssetData} from "contracts/bridgehub/IBridgehub.sol"; import {AddressAliasHelper} from "contracts/vendor/AddressAliasHelper.sol"; import {L2_ASSET_ROUTER_ADDR} from "contracts/common/l2-helpers/L2ContractAddresses.sol"; import {IL2AssetRouter} from "contracts/bridge/asset-router/IL2AssetRouter.sol"; @@ -469,9 +469,9 @@ contract AdminFunctions is Script { bytes memory secondBridgeData; { - bytes32 chainAssetId = Bridgehub(data.bridgehub).ctmAssetIdFromChainId(data.l2ChainId); + bytes32 chainAssetId = L1Bridgehub(data.bridgehub).ctmAssetIdFromChainId(data.l2ChainId); - uint256 currentSettlementLayer = Bridgehub(data.bridgehub).settlementLayer(data.l2ChainId); + uint256 currentSettlementLayer = L1Bridgehub(data.bridgehub).settlementLayer(data.l2ChainId); if (currentSettlementLayer == data.gatewayChainId) { console.log("Chain already using gateway as its settlement layer"); saveOutput(Output({admin: l2ChainInfo.admin, encodedData: hex""})); @@ -486,7 +486,7 @@ contract AdminFunctions is Script { data._gatewayDiamondCutData ), chainData: abi.encode( - IZKChain(Bridgehub(data.bridgehub).getZKChain(data.l2ChainId)).getProtocolVersion() + IZKChain(L1Bridgehub(data.bridgehub).getZKChain(data.l2ChainId)).getProtocolVersion() ) }) ); @@ -691,7 +691,7 @@ contract AdminFunctions is Script { ); { - uint256 currentSettlementLayer = Bridgehub(data.bridgehub).settlementLayer(data.l2ChainId); + uint256 currentSettlementLayer = L1Bridgehub(data.bridgehub).settlementLayer(data.l2ChainId); if (currentSettlementLayer != data.gatewayChainId) { console.log("Chain does not settle on Gateway"); saveOutput(Output({admin: l2ChainInfo.admin, encodedData: hex""})); diff --git a/l1-contracts/deploy-scripts/BlakeContractHashing.s.sol b/l1-contracts/deploy-scripts/BlakeContractHashing.s.sol new file mode 100644 index 0000000000..a59082ab29 --- /dev/null +++ b/l1-contracts/deploy-scripts/BlakeContractHashing.s.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.21; + +import {Script, console2 as console} from "forge-std/Script.sol"; +import {Vm} from "forge-std/Vm.sol"; + +import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {Utils} from "./Utils.sol"; + +contract BlakeContractHashing is Script { + function run(string calldata fileName, string calldata contractName) public { + bytes memory contractBytecode = Utils.readFoundryBytecodeL1(fileName, contractName); + + bytes32 result = Utils.blakeHashBytecode(contractBytecode); + + console.logBytes32(result); + } +} diff --git a/l1-contracts/deploy-scripts/BytecodeUtils.s.sol b/l1-contracts/deploy-scripts/BytecodeUtils.s.sol new file mode 100644 index 0000000000..7f16b4cd43 --- /dev/null +++ b/l1-contracts/deploy-scripts/BytecodeUtils.s.sol @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import {Vm} from "forge-std/Vm.sol"; + +library BytecodeUtils { + // Cheatcodes address, 0x7109709ECfa91a80626fF3989D68f67F5b1DD12D. + address internal constant VM_ADDRESS = address(uint160(uint256(keccak256("hevm cheat code")))); + Vm internal constant vm = Vm(VM_ADDRESS); + + /** + * @dev Returns the bytecode of a given system contract. + */ + function readSystemContractsBytecode(string memory filename) internal view returns (bytes memory) { + return readZKFoundryBytecodeSystemContracts(string.concat(filename, ".sol"), filename); + } + + /** + * @dev Returns the bytecode of a given system contract in yul. + */ + function readSystemContractsYulBytecode(string memory filename) internal view returns (bytes memory) { + string memory path = string.concat("/../system-contracts/zkout/", filename, ".yul/", filename, ".json"); + + return readFoundryBytecode(path); + } + + /** + * @dev Returns the bytecode of a given precompile system contract. + */ + function readPrecompileBytecode(string memory filename) internal view returns (bytes memory) { + string memory path = string.concat("/../system-contracts/zkout/", filename, ".yul/", filename, ".json"); + + return readFoundryBytecode(path); + } + /** + * @dev Returns the bytecode of a given DA contract. + */ + function readDAContractBytecode(string memory contractIdentifier) internal view returns (bytes memory) { + return + readFoundryBytecode( + string.concat("/../da-contracts/out/", contractIdentifier, ".sol/", contractIdentifier, ".json") + ); + } + + /** + * @dev Read foundry bytecodes + */ + function readFoundryBytecode(string memory artifactPath) internal view returns (bytes memory) { + string memory root = vm.projectRoot(); + string memory path = string.concat(root, artifactPath); + string memory json = vm.readFile(path); + bytes memory bytecode = vm.parseJsonBytes(json, ".bytecode.object"); + return bytecode; + } + + function readFoundryBytecodeL1( + string memory fileName, + string memory contractName + ) internal view returns (bytes memory) { + string memory path = string.concat("/../l1-contracts/out/", fileName, "/", contractName, ".json"); + return readFoundryBytecode(path); + } + + function readZKFoundryBytecodeL1( + string memory fileName, + string memory contractName + ) internal view returns (bytes memory) { + string memory path = string.concat("/../l1-contracts/zkout/", fileName, "/", contractName, ".json"); + bytes memory bytecode = readFoundryBytecode(path); + return bytecode; + } + + function readZKFoundryBytecodeL2( + string memory fileName, + string memory contractName + ) internal view returns (bytes memory) { + string memory path = string.concat("/../l2-contracts/zkout/", fileName, "/", contractName, ".json"); + bytes memory bytecode = readFoundryBytecode(path); + return bytecode; + } + + function readZKFoundryBytecodeSystemContracts( + string memory fileName, + string memory contractName + ) internal view returns (bytes memory) { + string memory path = string.concat("/../system-contracts/zkout/", fileName, "/", contractName, ".json"); + bytes memory bytecode = readFoundryBytecode(path); + return bytecode; + } + + function compareStrings(string memory a, string memory b) public pure returns (bool) { + return keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b)); + } +} diff --git a/l1-contracts/deploy-scripts/ContractsBytecodesLib.sol b/l1-contracts/deploy-scripts/ContractsBytecodesLib.sol index 0db6d4d396..4c37aa38ea 100644 --- a/l1-contracts/deploy-scripts/ContractsBytecodesLib.sol +++ b/l1-contracts/deploy-scripts/ContractsBytecodesLib.sol @@ -1,7 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import "./Utils.sol"; +import {Utils as Utils_old} from "./Utils.sol"; +import {BytecodeUtils as Utils} from "./BytecodeUtils.s.sol"; /// @title ContractsBytecodesLib /// @notice Library providing functions to read bytecodes of L2 contracts individually. @@ -24,6 +25,7 @@ library ContractsBytecodesLib { return getCreationCodeEVM(contractIdentifier); } } + function getCreationCodeEVM(string memory contractIdentifier) internal view returns (bytes memory) { string[3] memory DA_CONTRACT_IDENTIFIERS = ["RollupL1DAValidator", "AvailL1DAValidator", "DummyAvailBridge"]; diff --git a/l1-contracts/deploy-scripts/DeployL1.s.sol b/l1-contracts/deploy-scripts/DeployL1.s.sol index e727071333..4840151bd3 100644 --- a/l1-contracts/deploy-scripts/DeployL1.s.sol +++ b/l1-contracts/deploy-scripts/DeployL1.s.sol @@ -45,10 +45,11 @@ import {Governance} from "contracts/governance/Governance.sol"; import {L1GenesisUpgrade} from "contracts/upgrades/L1GenesisUpgrade.sol"; import {ChainAdmin} from "contracts/governance/ChainAdmin.sol"; import {ValidatorTimelock} from "contracts/state-transition/ValidatorTimelock.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; -import {ChainAssetHandler} from "contracts/bridgehub/ChainAssetHandler.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; +import {L1MessageRoot} from "contracts/bridgehub/L1MessageRoot.sol"; +import {ICTMDeploymentTracker} from "contracts/bridgehub/ICTMDeploymentTracker.sol"; import {CTMDeploymentTracker} from "contracts/bridgehub/CTMDeploymentTracker.sol"; +import {L1ChainAssetHandler} from "contracts/bridgehub/L1ChainAssetHandler.sol"; import {L1NativeTokenVault} from "contracts/bridge/ntv/L1NativeTokenVault.sol"; import {ExecutorFacet} from "contracts/state-transition/chain-deps/facets/Executor.sol"; import {AdminFacet} from "contracts/state-transition/chain-deps/facets/Admin.sol"; @@ -71,6 +72,19 @@ import {UpgradeStageValidator} from "contracts/upgrades/UpgradeStageValidator.so import {Config, DeployUtils, DeployedAddresses, GeneratedData} from "./DeployUtils.s.sol"; import {FixedForceDeploymentsData} from "contracts/state-transition/l2-deps/IL2GenesisUpgrade.sol"; +import {L2AssetRouter} from "contracts/bridge/asset-router/L2AssetRouter.sol"; + +import {L2MessageRoot} from "contracts/bridgehub/L2MessageRoot.sol"; +import {L2Bridgehub} from "contracts/bridgehub/L2Bridgehub.sol"; + +import {L2AssetRouter} from "contracts/bridge/asset-router/L2AssetRouter.sol"; + +import {L2MessageRoot} from "contracts/bridgehub/L2MessageRoot.sol"; +import {L2Bridgehub} from "contracts/bridgehub/L2Bridgehub.sol"; +import {CTMDeploymentTracker} from "contracts/bridgehub/CTMDeploymentTracker.sol"; + +import {Utils} from "./Utils.sol"; + contract DeployL1Script is Script, DeployUtils { using stdToml for string; @@ -163,6 +177,14 @@ contract DeployL1Script is Script, DeployUtils { // The single owner chainAdmin does not have a separate control restriction contract. // We set to it to zero explicitly so that it is clear to the reader. addresses.accessControlRestrictionAddress = address(0); + (addresses.bridgehub.bridgehubImplementation, addresses.bridgehub.bridgehubProxy) = deployTuppWithContract( + "L1Bridgehub", + false + ); + (addresses.bridgehub.messageRootImplementation, addresses.bridgehub.messageRootProxy) = deployTuppWithContract( + "L1MessageRoot", + false + ); (, addresses.stateTransition.validatorTimelock) = deployTuppWithContract("ValidatorTimelock", false); @@ -171,6 +193,43 @@ contract DeployL1Script is Script, DeployUtils { addresses.stateTransition.serverNotifierProxy ) = deployServerNotifier(); + (addresses.bridges.l1NullifierImplementation, addresses.bridges.l1NullifierProxy) = deployTuppWithContract( + "L1Nullifier", + false + ); + (addresses.bridges.l1AssetRouterImplementation, addresses.bridges.l1AssetRouterProxy) = deployTuppWithContract( + "L1AssetRouter", + false + ); + (addresses.bridges.bridgedStandardERC20Implementation) = deploySimpleContract("BridgedStandardERC20", false); + addresses.bridges.bridgedTokenBeacon = deployWithCreate2AndOwner( + "BridgedTokenBeacon", + config.ownerAddress, + false + ); + ( + addresses.vaults.l1NativeTokenVaultImplementation, + addresses.vaults.l1NativeTokenVaultProxy + ) = deployTuppWithContract("L1NativeTokenVault", false); + setL1NativeTokenVaultParams(); + + (addresses.bridges.erc20BridgeImplementation, addresses.bridges.erc20BridgeProxy) = deployTuppWithContract( + "L1ERC20Bridge", + false + ); + updateSharedBridge(); + // deployChainRegistrar(); // TODO: enable after ChainRegistrar is reviewed + ( + addresses.bridgehub.ctmDeploymentTrackerImplementation, + addresses.bridgehub.ctmDeploymentTrackerProxy + ) = deployTuppWithContract("CTMDeploymentTracker", false); + + ( + addresses.bridgehub.chainAssetHandlerImplementation, + addresses.bridgehub.chainAssetHandlerProxy + ) = deployTuppWithContract("L1ChainAssetHandler", false); + setBridgehubParams(); + initializeGeneratedData(); deployStateTransitionDiamondFacets(); @@ -528,7 +587,7 @@ contract DeployL1Script is Script, DeployUtils { vm.writeToml(toml, outputPath); } - function prepareForceDeploymentsData() internal view returns (bytes memory) { + function prepareForceDeploymentsData() internal returns (bytes memory) { require(addresses.governance != address(0), "Governance address is not set"); address dangerousTestOnlyForcedBeacon; @@ -547,11 +606,12 @@ contract DeployL1Script is Script, DeployUtils { l2TokenProxyBytecodeHash: getL2BytecodeHash("BeaconProxy"), aliasedL1Governance: AddressAliasHelper.applyL1ToL2Alias(addresses.governance), maxNumberOfZKChains: config.contracts.maxNumberOfChains, - bridgehubBytecodeHash: getL2BytecodeHash("Bridgehub"), - l2AssetRouterBytecodeHash: getL2BytecodeHash("L2AssetRouter"), - l2NtvBytecodeHash: getL2BytecodeHash("L2NativeTokenVault"), - messageRootBytecodeHash: getL2BytecodeHash("MessageRoot"), - chainAssetHandlerBytecodeHash: getL2BytecodeHash("ChainAssetHandler"), + bridgehubBytecodeInfo: abi.encode(getL2BytecodeHash("L2Bridgehub")), + l2AssetRouterBytecodeInfo: abi.encode(getL2BytecodeHash("L2AssetRouter")), + l2NtvBytecodeInfo: abi.encode(getL2BytecodeHash("L2NativeTokenVault")), + messageRootBytecodeInfo: abi.encode(getL2BytecodeHash("L2MessageRoot")), + beaconDeployerInfo: abi.encode(getL2BytecodeHash("UpgradeableBeaconDeployer")), + chainAssetHandlerBytecodeInfo: abi.encode(getL2BytecodeHash("L2ChainAssetHandler")), // For newly created chains it it is expected that the following bridges are not present at the moment // of creation of the chain l2SharedBridgeLegacyImpl: address(0), @@ -588,7 +648,7 @@ contract DeployL1Script is Script, DeployUtils { proxy = deployViaCreate2AndNotify( type(TransparentUpgradeableProxy).creationCode, - abi.encode(implementation, proxyAdmin, getInitializeCalldata(contractName, false)), + abi.encode(implementation, proxyAdmin, getInitializeCalldata(contractName)), contractName, string.concat(contractName, " Proxy"), isZKBytecode @@ -675,12 +735,12 @@ contract DeployL1Script is Script, DeployUtils { if (!isZKBytecode) { if (compareStrings(contractName, "ChainRegistrar")) { return type(ChainRegistrar).creationCode; - } else if (compareStrings(contractName, "Bridgehub")) { - return type(Bridgehub).creationCode; - } else if (compareStrings(contractName, "ChainAssetHandler")) { - return type(ChainAssetHandler).creationCode; - } else if (compareStrings(contractName, "MessageRoot")) { - return type(MessageRoot).creationCode; + } else if (compareStrings(contractName, "L1Bridgehub")) { + return type(L1Bridgehub).creationCode; + } else if (compareStrings(contractName, "L1ChainAssetHandler")) { + return type(L1ChainAssetHandler).creationCode; + } else if (compareStrings(contractName, "L1MessageRoot")) { + return type(L1MessageRoot).creationCode; } else if (compareStrings(contractName, "CTMDeploymentTracker")) { return type(CTMDeploymentTracker).creationCode; } else if (compareStrings(contractName, "L1Nullifier")) { @@ -750,65 +810,129 @@ contract DeployL1Script is Script, DeployUtils { return type(UpgradeStageValidator).creationCode; } } else { - if (compareStrings(contractName, "Verifier")) { + if (compareStrings(contractName, "ChainRegistrar")) { + return Utils.readZKFoundryBytecodeL1("ChainRegistrar.sol", "ChainRegistrar"); + } else if (compareStrings(contractName, "L2Bridgehub")) { + return Utils.readZKFoundryBytecodeL1("L2Bridgehub.sol", "L2Bridgehub"); + } else if (compareStrings(contractName, "L2MessageRoot")) { + return Utils.readZKFoundryBytecodeL1("L2MessageRoot.sol", "L2MessageRoot"); + } else if (compareStrings(contractName, "ICTMDeploymentTracker")) { + return Utils.readZKFoundryBytecodeL1("ICTMDeploymentTracker.sol", "ICTMDeploymentTracker"); + } else if (compareStrings(contractName, "L2AssetRouter")) { + return Utils.readZKFoundryBytecodeL1("L2AssetRouter.sol", "L2AssetRouter"); + } else if (compareStrings(contractName, "L1ERC20Bridge")) { + return Utils.readZKFoundryBytecodeL1("L1ERC20Bridge.sol", "L1ERC20Bridge"); + } else if (compareStrings(contractName, "L2NativeTokenVault")) { + return Utils.readZKFoundryBytecodeL1("L2NativeTokenVault.sol", "L2NativeTokenVault"); + } else if (compareStrings(contractName, "BridgedStandardERC20")) { + return Utils.readZKFoundryBytecodeL1("BridgedStandardERC20.sol", "BridgedStandardERC20"); + } else if (compareStrings(contractName, "BridgedTokenBeacon")) { + return Utils.readZKFoundryBytecodeL1("UpgradeableBeacon.sol", "UpgradeableBeacon"); + } else if (compareStrings(contractName, "BlobVersionedHashRetriever")) { + return hex"600b600b5f39600b5ff3fe5f358049805f5260205ff3"; + } else if (compareStrings(contractName, "RollupDAManager")) { + return Utils.readZKFoundryBytecodeL1("RollupDAManager.sol", "RollupDAManager"); + } else if (compareStrings(contractName, "ValidiumL1DAValidator")) { + return Utils.readZKFoundryBytecodeL1("ValidiumL1DAValidator.sol", "ValidiumL1DAValidator"); + } else if (compareStrings(contractName, "Verifier")) { if (config.testnetVerifier) { return getCreationCode("TestnetVerifier", true); } else { return getCreationCode("DualVerifier", true); } + } else if (compareStrings(contractName, "VerifierFflonk")) { + return Utils.readZKFoundryBytecodeL1("L1VerifierFflonk.sol", "L1VerifierFflonk"); + } else if (compareStrings(contractName, "VerifierPlonk")) { + return Utils.readZKFoundryBytecodeL1("L1VerifierPlonk.sol", "L1VerifierPlonk"); + } else if (compareStrings(contractName, "DefaultUpgrade")) { + return Utils.readZKFoundryBytecodeL1("DefaultUpgrade.sol", "DefaultUpgrade"); + } else if (compareStrings(contractName, "L1GenesisUpgrade")) { + return Utils.readZKFoundryBytecodeL1("L1GenesisUpgrade.sol", "L1GenesisUpgrade"); + } else if (compareStrings(contractName, "ValidatorTimelock")) { + return Utils.readZKFoundryBytecodeL1("ValidatorTimelock.sol", "ValidatorTimelock"); + } else if (compareStrings(contractName, "Governance")) { + return Utils.readZKFoundryBytecodeL1("Governance.sol", "Governance"); + } else if (compareStrings(contractName, "ChainAdminOwnable")) { + return Utils.readZKFoundryBytecodeL1("ChainAdminOwnable.sol", "ChainAdminOwnable"); + } else if (compareStrings(contractName, "AccessControlRestriction")) { + // TODO(EVM-924): this function is unused + return Utils.readZKFoundryBytecodeL1("AccessControlRestriction.sol", "AccessControlRestriction"); + } else if (compareStrings(contractName, "ChainAdmin")) { + return Utils.readZKFoundryBytecodeL1("ChainAdmin.sol", "ChainAdmin"); + } else if (compareStrings(contractName, "ChainTypeManager")) { + return Utils.readZKFoundryBytecodeL1("ChainTypeManager.sol", "ChainTypeManager"); + } else if (compareStrings(contractName, "BytecodesSupplier")) { + return Utils.readZKFoundryBytecodeL1("BytecodesSupplier.sol", "BytecodesSupplier"); + } else if (compareStrings(contractName, "ProxyAdmin")) { + return Utils.readZKFoundryBytecodeL1("ProxyAdmin.sol", "ProxyAdmin"); + } else if (compareStrings(contractName, "ExecutorFacet")) { + return Utils.readZKFoundryBytecodeL1("Executor.sol", "ExecutorFacet"); + } else if (compareStrings(contractName, "AdminFacet")) { + return Utils.readZKFoundryBytecodeL1("Admin.sol", "AdminFacet"); + } else if (compareStrings(contractName, "MailboxFacet")) { + return Utils.readZKFoundryBytecodeL1("Mailbox.sol", "MailboxFacet"); + } else if (compareStrings(contractName, "GettersFacet")) { + return Utils.readZKFoundryBytecodeL1("Getters.sol", "GettersFacet"); + } else if (compareStrings(contractName, "DiamondInit")) { + return Utils.readZKFoundryBytecodeL1("DiamondInit.sol", "DiamondInit"); + } else if (compareStrings(contractName, "ServerNotifier")) { + return Utils.readZKFoundryBytecodeL1("ServerNotifier.sol", "ServerNotifier"); + } else if (compareStrings(contractName, "BeaconProxy")) { + return Utils.readZKFoundryBytecodeL1("BeaconProxy.sol", "BeaconProxy"); + } else if (compareStrings(contractName, "RollupL2DAValidator")) { + return Utils.readZKFoundryBytecodeL2("RollupL2DAValidator.sol", "RollupL2DAValidator"); + } else if (compareStrings(contractName, "ValidiumL2DAValidator")) { + return Utils.readZKFoundryBytecodeL2("ValidiumL2DAValidator.sol", "ValidiumL2DAValidator"); + } else if (compareStrings(contractName, "AvailL2DAValidator")) { + return Utils.readZKFoundryBytecodeL2("AvailL2DAValidator.sol", "AvailL2DAValidator"); + } else { + revert(string.concat("Contract ", contractName, " creation code not set")); } } return ContractsBytecodesLib.getCreationCode(contractName, isZKBytecode); } - function getInitializeCalldata( - string memory contractName, - bool isZKBytecode - ) internal virtual override returns (bytes memory) { - if (!isZKBytecode) { - if (compareStrings(contractName, "Bridgehub")) { - return abi.encodeCall(Bridgehub.initialize, (config.deployerAddress)); - } else if (compareStrings(contractName, "MessageRoot")) { - return abi.encodeCall(MessageRoot.initialize, ()); - } else if (compareStrings(contractName, "ChainAssetHandler")) { - return abi.encodeCall(ChainAssetHandler.initialize, (config.deployerAddress)); - } else if (compareStrings(contractName, "CTMDeploymentTracker")) { - return abi.encodeCall(CTMDeploymentTracker.initialize, (config.deployerAddress)); - } else if (compareStrings(contractName, "L1Nullifier")) { - return abi.encodeCall(L1Nullifier.initialize, (config.deployerAddress, 1, 1, 1, 0)); - } else if (compareStrings(contractName, "L1AssetRouter")) { - return abi.encodeCall(L1AssetRouter.initialize, (config.deployerAddress)); - } else if (compareStrings(contractName, "L1ERC20Bridge")) { - return abi.encodeCall(L1ERC20Bridge.initialize, ()); - } else if (compareStrings(contractName, "L1NativeTokenVault")) { - return - abi.encodeCall( - L1NativeTokenVault.initialize, - (config.ownerAddress, addresses.bridges.bridgedTokenBeacon) - ); - } else if (compareStrings(contractName, "ChainTypeManager")) { - return - abi.encodeCall( - ChainTypeManager.initialize, - getChainTypeManagerInitializeData(addresses.stateTransition) - ); - } else if (compareStrings(contractName, "ChainRegistrar")) { - return - abi.encodeCall( - ChainRegistrar.initialize, - (addresses.bridgehub.bridgehubProxy, config.deployerAddress, config.ownerAddress) - ); - } else if (compareStrings(contractName, "ServerNotifier")) { - return abi.encodeCall(ServerNotifier.initialize, (msg.sender)); - } else if (compareStrings(contractName, "ValidatorTimelock")) { - return - abi.encodeCall( - ValidatorTimelock.initialize, - (config.deployerAddress, uint32(config.contracts.validatorTimelockExecutionDelay)) - ); - } else { - revert(string.concat("Contract ", contractName, " initialize calldata not set")); - } + function getInitializeCalldata(string memory contractName) internal virtual override returns (bytes memory) { + if (compareStrings(contractName, "L1Bridgehub")) { + return abi.encodeCall(L1Bridgehub.initialize, (config.deployerAddress)); + } else if (compareStrings(contractName, "L1MessageRoot")) { + return abi.encodeCall(L1MessageRoot.initialize, ()); + } else if (compareStrings(contractName, "L1ChainAssetHandler")) { + return abi.encode(); + } else if (compareStrings(contractName, "CTMDeploymentTracker")) { + return abi.encodeCall(CTMDeploymentTracker.initialize, (config.deployerAddress)); + } else if (compareStrings(contractName, "L1Nullifier")) { + return abi.encodeCall(L1Nullifier.initialize, (config.deployerAddress, 1, 1, 1, 0)); + } else if (compareStrings(contractName, "L1AssetRouter")) { + return abi.encodeCall(L1AssetRouter.initialize, (config.deployerAddress)); + } else if (compareStrings(contractName, "L1ERC20Bridge")) { + return abi.encodeCall(L1ERC20Bridge.initialize, ()); + } else if (compareStrings(contractName, "L1NativeTokenVault")) { + return + abi.encodeCall( + L1NativeTokenVault.initialize, + (config.ownerAddress, addresses.bridges.bridgedTokenBeacon) + ); + } else if (compareStrings(contractName, "ChainTypeManager")) { + return + abi.encodeCall( + ChainTypeManager.initialize, + getChainTypeManagerInitializeData(addresses.stateTransition) + ); + } else if (compareStrings(contractName, "ChainRegistrar")) { + return + abi.encodeCall( + ChainRegistrar.initialize, + (addresses.bridgehub.bridgehubProxy, config.deployerAddress, config.ownerAddress) + ); + } else if (compareStrings(contractName, "ServerNotifier")) { + return abi.encodeCall(ServerNotifier.initialize, (msg.sender)); + } else if (compareStrings(contractName, "ValidatorTimelock")) { + return + abi.encodeCall( + ValidatorTimelock.initialize, + (config.deployerAddress, uint32(config.contracts.validatorTimelockExecutionDelay)) + ); } else { revert(string.concat("Contract ", contractName, " ZK initialize calldata not set")); } diff --git a/l1-contracts/deploy-scripts/DeployL1Additional.s.sol b/l1-contracts/deploy-scripts/DeployL1Additional.s.sol new file mode 100644 index 0000000000..eee8137c25 --- /dev/null +++ b/l1-contracts/deploy-scripts/DeployL1Additional.s.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import {Script} from "forge-std/Script.sol"; +import {DeployL1Script} from "./DeployL1.s.sol"; +import {L2ContractHelper} from "contracts/common/l2-helpers/L2ContractHelper.sol"; + +contract DeployL1Additional is DeployL1Script { + function getL2BytecodeHash(string memory contractName) public view virtual override returns (bytes32) { + return L2ContractHelper.hashL2Bytecode(getCreationCode(contractName, true)); + } +} diff --git a/l1-contracts/deploy-scripts/DeployUtils.s.sol b/l1-contracts/deploy-scripts/DeployUtils.s.sol index b9c415bfce..02db2c4d7d 100644 --- a/l1-contracts/deploy-scripts/DeployUtils.s.sol +++ b/l1-contracts/deploy-scripts/DeployUtils.s.sol @@ -352,6 +352,11 @@ abstract contract DeployUtils is Create2FactoryUtils { require(stateTransition.verifier != address(0), "verifier is zero"); + // TODO should be provided? + // if (!stateTransition.isOnGateway) { + // require(addresses.blobVersionedHashRetriever != address(0), "blobVersionedHashRetriever is zero"); + // } + return DiamondInitializeDataNewChain({ verifier: IVerifier(stateTransition.verifier), @@ -409,13 +414,13 @@ abstract contract DeployUtils is Create2FactoryUtils { ) internal view virtual returns (bytes memory) { if (compareStrings(contractName, "ChainRegistrar")) { return abi.encode(); - } else if (compareStrings(contractName, "Bridgehub")) { - return abi.encode(config.l1ChainId, config.ownerAddress, (config.contracts.maxNumberOfChains)); - } else if (compareStrings(contractName, "MessageRoot")) { - return abi.encode(addresses.bridgehub.bridgehubProxy, config.l1ChainId); + } else if (compareStrings(contractName, "L1Bridgehub")) { + return abi.encode(config.ownerAddress, (config.contracts.maxNumberOfChains)); + } else if (compareStrings(contractName, "L1MessageRoot")) { + return abi.encode(addresses.bridgehub.bridgehubProxy); } else if (compareStrings(contractName, "CTMDeploymentTracker")) { return abi.encode(addresses.bridgehub.bridgehubProxy, addresses.bridges.l1AssetRouterProxy); - } else if (compareStrings(contractName, "ChainAssetHandler")) { + } else if (compareStrings(contractName, "L1ChainAssetHandler")) { return abi.encode( config.l1ChainId, @@ -519,10 +524,7 @@ abstract contract DeployUtils is Create2FactoryUtils { } } - function getInitializeCalldata( - string memory contractName, - bool isZKBytecode - ) internal virtual returns (bytes memory); + function getInitializeCalldata(string memory contractName) internal virtual returns (bytes memory); function test() internal virtual {} } diff --git a/l1-contracts/deploy-scripts/InitializeL2WethToken.s.sol b/l1-contracts/deploy-scripts/InitializeL2WethToken.s.sol index 57a63a1766..a1c922fe45 100644 --- a/l1-contracts/deploy-scripts/InitializeL2WethToken.s.sol +++ b/l1-contracts/deploy-scripts/InitializeL2WethToken.s.sol @@ -9,7 +9,7 @@ import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts-v4/proxy/tra import {Utils} from "./Utils.sol"; import {L2TransactionRequestDirect} from "contracts/bridgehub/IBridgehub.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; contract InitializeL2WethTokenScript is Script { using stdToml for string; @@ -74,7 +74,7 @@ contract InitializeL2WethTokenScript is Script { } function initializeL2WethToken() internal { - Bridgehub bridgehub = Bridgehub(config.bridgehubProxyAddr); + IBridgehub bridgehub = IBridgehub(config.bridgehubProxyAddr); uint256 gasPrice = Utils.bytesToUint256(vm.rpc("eth_gasPrice", "[]")) * config.gasMultiplier; uint256 requiredValueToInitializeBridge = bridgehub.l2TransactionBaseCost( diff --git a/l1-contracts/deploy-scripts/PrepareZKChainRegistrationCalldata.s.sol b/l1-contracts/deploy-scripts/PrepareZKChainRegistrationCalldata.s.sol index ddb10bf73f..06b9025640 100644 --- a/l1-contracts/deploy-scripts/PrepareZKChainRegistrationCalldata.s.sol +++ b/l1-contracts/deploy-scripts/PrepareZKChainRegistrationCalldata.s.sol @@ -7,8 +7,8 @@ import {Script, console2 as console} from "forge-std/Script.sol"; import {stdToml} from "forge-std/StdToml.sol"; import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; -import {L2ContractHelper} from "contracts/common/l2-helpers/L2ContractHelper.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; +import {L2ContractHelper} from "contracts/common/libraries/L2ContractHelper.sol"; import {AddressAliasHelper} from "contracts/vendor/AddressAliasHelper.sol"; import {L1AssetRouter} from "contracts/bridge/L1AssetRouter.sol"; import {IChainTypeManager} from "contracts/state-transition/IChainTypeManager.sol"; @@ -143,8 +143,8 @@ contract PrepareZKChainRegistrationCalldataScript is Script { config.erc20BridgeProxy = toml.readAddress("$.deployed_addresses.erc20_bridge_proxy_addr"); ecosystem.bridgehub = IChainTypeManager(config.stateTransitionProxy).BRIDGE_HUB(); - ecosystem.l1SharedBridgeProxy = address(Bridgehub(ecosystem.bridgehub).sharedBridge()); - ecosystem.governance = Bridgehub(ecosystem.bridgehub).owner(); + ecosystem.l1SharedBridgeProxy = address(L1Bridgehub(ecosystem.bridgehub).sharedBridge()); + ecosystem.governance = L1Bridgehub(ecosystem.bridgehub).owner(); config.chainId = toml.readUint("$.chain.chain_id"); config.eraChainId = toml.readUint("$.chain.era_chain_id"); @@ -181,7 +181,7 @@ contract PrepareZKChainRegistrationCalldataScript is Script { } function prepareRegisterBaseTokenCall() internal view returns (Call memory) { - Bridgehub bridgehub = Bridgehub(ecosystem.bridgehub); + L1Bridgehub bridgehub = L1Bridgehub(ecosystem.bridgehub); bytes memory data = abi.encodeCall( bridgehub.addTokenAssetId, @@ -273,7 +273,7 @@ contract PrepareZKChainRegistrationCalldataScript is Script { } function prepareRegisterZKChainCall() internal view returns (IGovernance.Call memory) { - Bridgehub bridgehub = Bridgehub(ecosystem.bridgehub); + L1Bridgehub bridgehub = L1Bridgehub(ecosystem.bridgehub); bytes memory data = abi.encodeCall( bridgehub.createNewChain, diff --git a/l1-contracts/deploy-scripts/RegisterZKChain.s.sol b/l1-contracts/deploy-scripts/RegisterZKChain.s.sol index f29b7b9a23..8847429764 100644 --- a/l1-contracts/deploy-scripts/RegisterZKChain.s.sol +++ b/l1-contracts/deploy-scripts/RegisterZKChain.s.sol @@ -495,10 +495,10 @@ contract RegisterZKChainScript is Script { function getFactoryDeps() internal view returns (bytes[] memory) { bytes[] memory factoryDeps = new bytes[](4); - factoryDeps[0] = ContractsBytecodesLib.getCreationCode("BeaconProxy"); - factoryDeps[1] = ContractsBytecodesLib.getCreationCode("BridgedStandardERC20"); - factoryDeps[2] = ContractsBytecodesLib.getCreationCode("UpgradeableBeacon"); - factoryDeps[3] = ContractsBytecodesLib.getCreationCode("SystemTransparentUpgradeableProxy"); + factoryDeps[0] = Utils.readFoundryDeployedBytecodeL1("L2Bridgehub.sol", "L2Bridgehub"); + factoryDeps[1] = Utils.readFoundryDeployedBytecodeL1("L2AssetRouter.sol", "L2AssetRouter"); + factoryDeps[2] = Utils.readFoundryDeployedBytecodeL1("L2MessageRoot.sol", "L2MessageRoot"); + factoryDeps[3] = Utils.readFoundryDeployedBytecodeL1("UpgradeableBeaconDeployer.sol", "UpgradeableBeaconDeployer"); return factoryDeps; } diff --git a/l1-contracts/deploy-scripts/Utils.sol b/l1-contracts/deploy-scripts/Utils.sol index 5ad8e28032..816347a608 100644 --- a/l1-contracts/deploy-scripts/Utils.sol +++ b/l1-contracts/deploy-scripts/Utils.sol @@ -24,7 +24,7 @@ import {ISecurityCouncil} from "./interfaces/ISecurityCouncil.sol"; import {IMultisig} from "./interfaces/IMultisig.sol"; import {ISafe} from "./interfaces/ISafe.sol"; import {ChainAdminOwnable} from "contracts/governance/ChainAdminOwnable.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {ChainTypeManager} from "contracts/state-transition/ChainTypeManager.sol"; import {IGetters} from "contracts/state-transition/chain-interfaces/IGetters.sol"; @@ -285,7 +285,7 @@ library Utils { } vm.broadcast(); - (bool success, bytes memory data) = _factory.call(abi.encodePacked(_salt, _bytecode)); + (bool success, bytes memory data) = _factory.call{gas: 20_000_000}(abi.encodePacked(_salt, _bytecode)); contractAddress = bytesToAddress(data); if (!success || contractAddress == address(0) || contractAddress.code.length == 0) { @@ -988,6 +988,15 @@ library Utils { return bytecode; } + function readFoundryDeployedBytecodeL1( + string memory fileName, + string memory contractName + ) internal view returns (bytes memory) { + string memory path = string.concat("/../l1-contracts/out/", fileName, "/", contractName, ".json"); + bytes memory bytecode = readFoundryDeployedBytecode(path); + return bytecode; + } + function readZKFoundryBytecodeL2( string memory fileName, string memory contractName @@ -1017,6 +1026,16 @@ library Utils { return bytecode; } + function blakeHashBytecode(bytes memory bytecode) internal returns (bytes32 hashedBytecode) { + string[] memory input = new string[](5); + input[0] = "yarn"; + input[1] = "--silent"; + input[2] = "ts-node"; + input[3] = "./scripts/blake2s256.ts"; + input[4] = vm.toString(bytecode); + hashedBytecode = bytes32(vm.ffi(input)); + } + function executeUpgrade( address _governor, bytes32 _salt, @@ -1288,10 +1307,10 @@ library Utils { address _bridgehub, uint256 _chainId ) internal view returns (ChainInfoFromBridgehub memory info) { - info.l1AssetRouterProxy = Bridgehub(_bridgehub).assetRouter(); - info.diamondProxy = Bridgehub(_bridgehub).getZKChain(_chainId); + info.l1AssetRouterProxy = L1Bridgehub(_bridgehub).assetRouter(); + info.diamondProxy = L1Bridgehub(_bridgehub).getZKChain(_chainId); info.admin = IGetters(info.diamondProxy).getAdmin(); - info.ctm = Bridgehub(_bridgehub).chainTypeManager(_chainId); + info.ctm = L1Bridgehub(_bridgehub).chainTypeManager(_chainId); info.serverNotifier = ChainTypeManager(info.ctm).serverNotifierAddress(); } diff --git a/l1-contracts/deploy-scripts/gateway/GatewayGovernanceUtils.s.sol b/l1-contracts/deploy-scripts/gateway/GatewayGovernanceUtils.s.sol index 35b68e1fb5..40e42d4007 100644 --- a/l1-contracts/deploy-scripts/gateway/GatewayGovernanceUtils.s.sol +++ b/l1-contracts/deploy-scripts/gateway/GatewayGovernanceUtils.s.sol @@ -53,7 +53,6 @@ import {GatewayCTMDeployerHelper} from "./GatewayCTMDeployerHelper.sol"; import {DeployedContracts, GatewayCTMDeployerConfig} from "contracts/state-transition/chain-deps/GatewayCTMDeployer.sol"; import {IVerifier, VerifierParams} from "contracts/state-transition/chain-interfaces/IVerifier.sol"; import {FeeParams, PubdataPricingMode} from "contracts/state-transition/chain-deps/ZKChainStorage.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; import {GettersFacet} from "contracts/state-transition/chain-deps/facets/Getters.sol"; abstract contract GatewayGovernanceUtils is Script { diff --git a/l1-contracts/deploy-scripts/gateway/GatewayVotePreparation.s.sol b/l1-contracts/deploy-scripts/gateway/GatewayVotePreparation.s.sol index 0b313b12ad..55f5ff876a 100644 --- a/l1-contracts/deploy-scripts/gateway/GatewayVotePreparation.s.sol +++ b/l1-contracts/deploy-scripts/gateway/GatewayVotePreparation.s.sol @@ -53,7 +53,7 @@ import {GatewayCTMDeployerHelper} from "./GatewayCTMDeployerHelper.sol"; import {DeployedContracts, GatewayCTMDeployerConfig} from "contracts/state-transition/chain-deps/GatewayCTMDeployer.sol"; import {IVerifier, VerifierParams} from "contracts/state-transition/chain-interfaces/IVerifier.sol"; import {FeeParams, PubdataPricingMode} from "contracts/state-transition/chain-deps/ZKChainStorage.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {GettersFacet} from "contracts/state-transition/chain-deps/facets/Getters.sol"; import {GatewayGovernanceUtils} from "./GatewayGovernanceUtils.s.sol"; @@ -156,7 +156,7 @@ contract GatewayVotePreparation is DeployL1Script, GatewayGovernanceUtils { "The latest protocol version is not correct" ); serverNotifier = ChainTypeManager(ctm).serverNotifierAddress(); - addresses.bridges.l1AssetRouterProxy = Bridgehub(addresses.bridgehub.bridgehubProxy).assetRouter(); + addresses.bridges.l1AssetRouterProxy = L1Bridgehub(addresses.bridgehub.bridgehubProxy).assetRouter(); addresses.vaults.l1NativeTokenVaultProxy = address( L1AssetRouter(addresses.bridges.l1AssetRouterProxy).nativeTokenVault() @@ -166,16 +166,16 @@ contract GatewayVotePreparation is DeployL1Script, GatewayGovernanceUtils { ); addresses.bridgehub.ctmDeploymentTrackerProxy = address( - Bridgehub(addresses.bridgehub.bridgehubProxy).l1CtmDeployer() + L1Bridgehub(addresses.bridgehub.bridgehubProxy).l1CtmDeployer() ); - addresses.bridgehub.messageRootProxy = address(Bridgehub(addresses.bridgehub.bridgehubProxy).messageRoot()); + addresses.bridgehub.messageRootProxy = address(L1Bridgehub(addresses.bridgehub.bridgehubProxy).messageRoot()); addresses.bridges.erc20BridgeProxy = address( L1AssetRouter(addresses.bridges.l1AssetRouterProxy).legacyBridge() ); // It is used as the ecosystem admin inside the `DeployL1` contract - addresses.chainAdmin = Bridgehub(addresses.bridgehub.bridgehubProxy).admin(); + addresses.chainAdmin = L1Bridgehub(addresses.bridgehub.bridgehubProxy).admin(); } function deployGatewayCTM() internal { diff --git a/l1-contracts/deploy-scripts/upgrade/ChainUpgrade.s.sol b/l1-contracts/deploy-scripts/upgrade/ChainUpgrade.s.sol index 43cbbac582..095dc03039 100644 --- a/l1-contracts/deploy-scripts/upgrade/ChainUpgrade.s.sol +++ b/l1-contracts/deploy-scripts/upgrade/ChainUpgrade.s.sol @@ -15,7 +15,7 @@ import {AccessControlRestriction} from "contracts/governance/AccessControlRestri import {IChainAdminOwnable} from "contracts/governance/IChainAdminOwnable.sol"; import {Call} from "contracts/governance/Common.sol"; import {ChainTypeManager} from "contracts/state-transition/ChainTypeManager.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {Diamond} from "contracts/state-transition/libraries/Diamond.sol"; import {Ownable} from "@openzeppelin/contracts-v4/access/Ownable.sol"; @@ -99,6 +99,6 @@ contract ChainUpgrade is Script { toml = vm.readFile(ecosystemInputPath); config.bridgehubProxyAddress = toml.readAddress("$.contracts.bridgehub_proxy_address"); - config.chainDiamondProxyAddress = Bridgehub(config.bridgehubProxyAddress).getZKChain(config.chainChainId); + config.chainDiamondProxyAddress = L1Bridgehub(config.bridgehubProxyAddress).getZKChain(config.chainChainId); } } diff --git a/l1-contracts/deploy-scripts/upgrade/DefaultEcosystemUpgrade.s.sol b/l1-contracts/deploy-scripts/upgrade/DefaultEcosystemUpgrade.s.sol index a1195c2ca7..8298361402 100644 --- a/l1-contracts/deploy-scripts/upgrade/DefaultEcosystemUpgrade.s.sol +++ b/l1-contracts/deploy-scripts/upgrade/DefaultEcosystemUpgrade.s.sol @@ -4,8 +4,11 @@ pragma solidity 0.8.28; // solhint-disable no-console, gas-custom-errors import {Script, console2 as console} from "forge-std/Script.sol"; + import {stdToml} from "forge-std/StdToml.sol"; import {ProxyAdmin} from "@openzeppelin/contracts-v4/proxy/transparent/ProxyAdmin.sol"; +import {SafeCast} from "@openzeppelin/contracts-v4/utils/math/SafeCast.sol"; + import {ITransparentUpgradeableProxy, TransparentUpgradeableProxy} from "@openzeppelin/contracts-v4/proxy/transparent/TransparentUpgradeableProxy.sol"; import {IERC20} from "@openzeppelin/contracts-v4/token/ERC20/IERC20.sol"; import {UpgradeableBeacon} from "@openzeppelin/contracts-v4/proxy/beacon/UpgradeableBeacon.sol"; @@ -24,8 +27,8 @@ import {L1GenesisUpgrade} from "contracts/upgrades/L1GenesisUpgrade.sol"; import {GatewayUpgrade, GatewayUpgradeEncodedInput} from "contracts/upgrades/GatewayUpgrade.sol"; import {ChainAdmin} from "contracts/governance/ChainAdmin.sol"; import {ValidatorTimelock} from "contracts/state-transition/ValidatorTimelock.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; +import {L1MessageRoot} from "contracts/bridgehub/L1MessageRoot.sol"; import {CTMDeploymentTracker} from "contracts/bridgehub/CTMDeploymentTracker.sol"; import {L1NativeTokenVault} from "contracts/bridge/ntv/L1NativeTokenVault.sol"; import {ExecutorFacet} from "contracts/state-transition/chain-deps/facets/Executor.sol"; @@ -64,6 +67,7 @@ import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable-v4/ac import {IZKChain} from "contracts/state-transition/chain-interfaces/IZKChain.sol"; import {ProposedUpgrade} from "contracts/upgrades/BaseZkSyncUpgrade.sol"; import {UpgradeStageValidator} from "contracts/upgrades/UpgradeStageValidator.sol"; +import {SemVer} from "contracts/common/libraries/SemVer.sol"; import {L2CanonicalTransaction} from "contracts/common/Messaging.sol"; import {IComplexUpgrader} from "contracts/state-transition/l2-deps/IComplexUpgrader.sol"; @@ -80,10 +84,11 @@ import {ContractsConfig, DeployedAddresses, TokensConfig} from "../DeployUtils.s import {FixedForceDeploymentsData} from "contracts/state-transition/l2-deps/IL2GenesisUpgrade.sol"; import {DeployL1Script} from "../DeployL1.s.sol"; +import {DeployL1Additional} from "../DeployL1Additional.s.sol"; /// @notice Script used for default upgrade flow /// @dev For more complex upgrades, this script can be inherited and its functionality overridden if needed. -contract DefaultEcosystemUpgrade is Script, DeployL1Script { +contract DefaultEcosystemUpgrade is Script, DeployL1Additional { using stdToml for string; /** @@ -171,6 +176,7 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { initializeConfig(newConfigPath); + console.log("Initialized config from %s", newConfigPath); upgradeConfig.outputPath = string.concat(root, _outputPath); upgradeConfig.initialized = true; } @@ -202,8 +208,6 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { // Note, that this is the upgrade that will be used, despite the naming of the variable here. // To use the custom upgrade simply override the `deployUsedUpgradeContract` function. - - // TODO(refactor): rename to "upgrade contract", it is not a default upgrade. (addresses.stateTransition.defaultUpgrade) = deployUsedUpgradeContract(); (addresses.stateTransition.genesisUpgrade) = deploySimpleContract("L1GenesisUpgrade", false); @@ -216,7 +220,7 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { addresses.bridges.bridgedStandardERC20Implementation = deploySimpleContract("BridgedStandardERC20", false); upgradeAddresses.upgradeTimer = deploySimpleContract("GovernanceUpgradeTimer", false); - addresses.bridgehub.messageRootImplementation = deploySimpleContract("MessageRoot", false); + addresses.bridgehub.messageRootImplementation = deploySimpleContract("L1MessageRoot", false); addresses.bridgehub.ctmDeploymentTrackerImplementation = deploySimpleContract("CTMDeploymentTracker", false); deployStateTransitionDiamondFacets(); @@ -279,7 +283,7 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { bytes memory proxyCreationCalldata = abi.encode( implementationAddress, gatewayConfig.gatewayStateTransition.chainTypeManagerProxyAdmin, - getInitializeCalldata(contractName, true) + getInitializeCalldata(contractName) ); proxyAddress = Utils.deployThroughL1Deterministic( ContractsBytecodesLib.getCreationCode("TransparentUpgradeableProxy"), @@ -351,6 +355,29 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { } } + function _emptyUpgradeTx() internal virtual returns (L2CanonicalTransaction memory transaction) { + uint256[4] memory reserved; + uint256[] memory factoryDeps = new uint256[](1); + transaction = L2CanonicalTransaction({ + txType: 0, + from: 0, + to: 0, + gasLimit: 0, + gasPerPubdataByteLimit: 0, + maxFeePerGas: 0, + maxPriorityFeePerGas: 0, + paymaster: 0, + nonce: 0, + value: 0, + reserved: reserved, + data: "", + signature: "", + factoryDeps: factoryDeps, + paymasterInput: "", + reservedDynamic: "" + }); + } + /// @notice Build L1 -> L2 upgrade tx function _composeUpgradeTx( IL2ContractDeployer.ForceDeployment[] memory forceDeployments @@ -413,19 +440,28 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { return newConfig.oldProtocolVersion; } + function isPatchUpgrade() public virtual returns (bool) { + (uint32 _major, uint32 _minor, uint32 patch) = SemVer.unpackSemVer(SafeCast.toUint96(getNewProtocolVersion())); + return patch != 0; + } + /// @notice Generate upgrade cut data function generateUpgradeCutData( StateTransitionDeployedAddresses memory stateTransition ) public virtual returns (Diamond.DiamondCutData memory upgradeCutData) { require(upgradeConfig.factoryDepsPublished, "Factory deps not published"); - Diamond.FacetCut[] memory facetCutsForDeletion = getFacetCutsForDeletion(); - Diamond.FacetCut[] memory facetCuts; - facetCuts = formatFacetCuts(getFacetCuts(stateTransition)); - facetCuts = mergeFacets(facetCutsForDeletion, facetCuts); - ProposedUpgrade memory proposedUpgrade = getProposedUpgrade(stateTransition); + ProposedUpgrade memory proposedUpgrade; + if (isPatchUpgrade()) { + proposedUpgrade = getProposedPatchUpgrade(stateTransition); + } else { + proposedUpgrade = getProposedUpgrade(stateTransition); + Diamond.FacetCut[] memory facetCutsForDeletion = getFacetCutsForDeletion(); + facetCuts = formatFacetCuts(getFacetCuts(stateTransition)); + facetCuts = mergeFacets(facetCutsForDeletion, facetCuts); + } upgradeCutData = Diamond.DiamondCutData({ facetCuts: facetCuts, @@ -435,11 +471,30 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { if (!stateTransition.isOnGateway) { newlyGeneratedData.upgradeCutData = abi.encode(upgradeCutData); + upgradeConfig.upgradeCutPrepared = true; } else { gatewayConfig.upgradeCutData = abi.encode(upgradeCutData); } } + function getProposedPatchUpgrade( + StateTransitionDeployedAddresses memory stateTransition + ) public virtual returns (ProposedUpgrade memory proposedUpgrade) { + VerifierParams memory verifierParams = getVerifierParams(); + proposedUpgrade = ProposedUpgrade({ + l2ProtocolUpgradeTx: _emptyUpgradeTx(), + bootloaderHash: bytes32(0), + defaultAccountHash: bytes32(0), + evmEmulatorHash: bytes32(0), + verifier: stateTransition.verifier, + verifierParams: verifierParams, + l1ContractsUpgradeCalldata: new bytes(0), + postUpgradeCalldata: new bytes(0), + upgradeTimestamp: 0, + newProtocolVersion: getNewProtocolVersion() + }); + } + function getProposedUpgrade( StateTransitionDeployedAddresses memory stateTransition ) public virtual returns (ProposedUpgrade memory proposedUpgrade) { @@ -520,6 +575,7 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { addresses.transparentProxyAdmin = address( uint160(uint256(vm.load(addresses.bridgehub.bridgehubProxy, ADMIN_SLOT))) ); + require( Ownable2StepUpgradeable(addresses.bridgehub.bridgehubProxy).owner() == config.ownerAddress, "Incorrect owner" @@ -558,14 +614,16 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { } function getBridgehubAdmin() public virtual returns (address admin) { - admin = Bridgehub(addresses.bridgehub.bridgehubProxy).admin(); + admin = L1Bridgehub(addresses.bridgehub.bridgehubProxy).admin(); } /// @notice This function is meant to only be used in tests function prepareCreateNewChainCall(uint256 chainId) public view virtual returns (Call[] memory result) { require(addresses.bridgehub.bridgehubProxy != address(0), "bridgehubProxyAddress is zero in newConfig"); - bytes32 newChainAssetId = Bridgehub(addresses.bridgehub.bridgehubProxy).baseTokenAssetId(gatewayConfig.chainId); + bytes32 newChainAssetId = L1Bridgehub(addresses.bridgehub.bridgehubProxy).baseTokenAssetId( + gatewayConfig.chainId + ); result = new Call[](1); result[0] = Call({ target: addresses.bridgehub.bridgehubProxy, @@ -586,7 +644,7 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { } function setAddressesBasedOnBridgehub() internal virtual { - config.ownerAddress = Bridgehub(addresses.bridgehub.bridgehubProxy).owner(); + config.ownerAddress = L1Bridgehub(addresses.bridgehub.bridgehubProxy).owner(); address ctm = IBridgehub(addresses.bridgehub.bridgehubProxy).chainTypeManager(config.eraChainId); addresses.stateTransition.chainTypeManagerProxy = ctm; // We have to set the diamondProxy address here - as it is used by multiple constructors (for example L1Nullifier etc) @@ -598,7 +656,8 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { ctmProtocolVersion != getNewProtocolVersion(), "The new protocol version is already present on the ChainTypeManager" ); - addresses.bridges.l1AssetRouterProxy = Bridgehub(addresses.bridgehub.bridgehubProxy).assetRouter(); + addresses.bridges.l1AssetRouterProxy = L1Bridgehub(addresses.bridgehub.bridgehubProxy).assetRouter(); + addresses.stateTransition.genesisUpgrade = address(ChainTypeManager(ctm).l1GenesisUpgrade()); addresses.vaults.l1NativeTokenVaultProxy = address( L1AssetRouter(addresses.bridges.l1AssetRouterProxy).nativeTokenVault() @@ -611,10 +670,10 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { ); addresses.bridgehub.ctmDeploymentTrackerProxy = address( - Bridgehub(addresses.bridgehub.bridgehubProxy).l1CtmDeployer() + L1Bridgehub(addresses.bridgehub.bridgehubProxy).l1CtmDeployer() ); - addresses.bridgehub.messageRootProxy = address(Bridgehub(addresses.bridgehub.bridgehubProxy).messageRoot()); + addresses.bridgehub.messageRootProxy = address(L1Bridgehub(addresses.bridgehub.bridgehubProxy).messageRoot()); addresses.bridges.erc20BridgeProxy = address( L1AssetRouter(addresses.bridges.l1AssetRouterProxy).legacyBridge() @@ -625,9 +684,9 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { addresses.stateTransition.chainTypeManagerProxy ).serverNotifierAddress(); - newConfig.ecosystemAdminAddress = Bridgehub(addresses.bridgehub.bridgehubProxy).admin(); + newConfig.ecosystemAdminAddress = L1Bridgehub(addresses.bridgehub.bridgehubProxy).admin(); - address eraDiamondProxy = Bridgehub(addresses.bridgehub.bridgehubProxy).getZKChain(config.eraChainId); + address eraDiamondProxy = L1Bridgehub(addresses.bridgehub.bridgehubProxy).getZKChain(config.eraChainId); (addresses.daAddresses.l1RollupDAValidator, ) = GettersFacet(eraDiamondProxy).getDAValidatorPair(); } @@ -688,11 +747,12 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { l2TokenProxyBytecodeHash: getL2BytecodeHash("BeaconProxy"), aliasedL1Governance: AddressAliasHelper.applyL1ToL2Alias(config.ownerAddress), maxNumberOfZKChains: config.contracts.maxNumberOfChains, - bridgehubBytecodeHash: getL2BytecodeHash("Bridgehub"), - l2AssetRouterBytecodeHash: getL2BytecodeHash("L2AssetRouter"), - l2NtvBytecodeHash: getL2BytecodeHash("L2NativeTokenVault"), - messageRootBytecodeHash: getL2BytecodeHash("MessageRoot"), - chainAssetHandlerBytecodeHash: getL2BytecodeHash("ChainAssetHandler"), + bridgehubBytecodeInfo: abi.encode(getL2BytecodeHash("L2Bridgehub")), + l2AssetRouterBytecodeInfo: abi.encode(getL2BytecodeHash("L2AssetRouter")), + l2NtvBytecodeInfo: abi.encode(getL2BytecodeHash("L2NativeTokenVault")), + messageRootBytecodeInfo: abi.encode(getL2BytecodeHash("L2MessageRoot")), + chainAssetHandlerBytecodeInfo: abi.encode(getL2BytecodeHash("L2ChainAssetHandler")), + beaconDeployerInfo: abi.encode(getL2BytecodeHash("UpgradeableBeaconDeployer")), l2SharedBridgeLegacyImpl: address(0), l2BridgedStandardERC20Impl: address(0), dangerousTestOnlyForcedBeacon: address(0) @@ -1141,10 +1201,15 @@ contract DefaultEcosystemUpgrade is Script, DeployL1Script { allCalls[0] = prepareGovernanceUpgradeTimerCheckCall(); allCalls[1] = prepareCheckMigrationsPausedCalls(); + console.log("prepareStage1GovernanceCalls: prepareUpgradeProxiesCalls"); allCalls[2] = prepareUpgradeProxiesCalls(); + console.log("prepareStage1GovernanceCalls: prepareNewChainCreationParamsCall"); allCalls[3] = prepareNewChainCreationParamsCall(); + console.log("prepareStage1GovernanceCalls: provideSetNewVersionUpgradeCall"); allCalls[4] = provideSetNewVersionUpgradeCall(); + console.log("prepareStage1GovernanceCalls: prepareDAValidatorCall"); allCalls[5] = prepareDAValidatorCall(); + console.log("prepareStage1GovernanceCalls: prepareGatewaySpecificStage1GovernanceCalls"); allCalls[6] = prepareVersionSpecificStage1GovernanceCallsL1(); allCalls[7] = prepareGatewaySpecificStage1GovernanceCalls(); diff --git a/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v26_1.s.sol b/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v26_1.s.sol index ceb222e1d0..acb73e210a 100644 --- a/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v26_1.s.sol +++ b/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v26_1.s.sol @@ -19,8 +19,8 @@ import {L1GenesisUpgrade} from "contracts/upgrades/L1GenesisUpgrade.sol"; import {GatewayUpgrade, GatewayUpgradeEncodedInput} from "contracts/upgrades/GatewayUpgrade.sol"; import {ChainAdmin} from "contracts/governance/ChainAdmin.sol"; import {ValidatorTimelock} from "contracts/state-transition/ValidatorTimelock.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; +import {L1MessageRoot} from "contracts/bridgehub/L1MessageRoot.sol"; import {CTMDeploymentTracker} from "contracts/bridgehub/CTMDeploymentTracker.sol"; import {L1NativeTokenVault} from "contracts/bridge/ntv/L1NativeTokenVault.sol"; import {ExecutorFacet} from "contracts/state-transition/chain-deps/facets/Executor.sol"; @@ -384,7 +384,7 @@ contract EcosystemUpgrade_v26_1 is Script { ) { ctmAddress = addr; } catch { - ctmAddress = Bridgehub(config.contracts.bridgehubProxyAddress).chainTypeManager(config.eraChainId); + ctmAddress = L1Bridgehub(config.contracts.bridgehubProxyAddress).chainTypeManager(config.eraChainId); } config.contracts.stateTransitionManagerAddress = ctmAddress; config.contracts.eraDiamondProxy = ChainTypeManager(config.contracts.stateTransitionManagerAddress) @@ -392,7 +392,7 @@ contract EcosystemUpgrade_v26_1 is Script { config.contracts.transparentProxyAdmin = toml.readAddress("$.contracts.transparent_proxy_admin"); - config.ecosystemAdminAddress = Bridgehub(config.contracts.bridgehubProxyAddress).admin(); + config.ecosystemAdminAddress = L1Bridgehub(config.contracts.bridgehubProxyAddress).admin(); } function instantiateCreate2Factory() internal { diff --git a/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v27_1.s.sol b/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v27_1.s.sol index 2eca08a5a2..47fe02073a 100644 --- a/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v27_1.s.sol +++ b/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v27_1.s.sol @@ -16,8 +16,7 @@ import {L1GenesisUpgrade} from "contracts/upgrades/L1GenesisUpgrade.sol"; import {GatewayUpgrade, GatewayUpgradeEncodedInput} from "contracts/upgrades/GatewayUpgrade.sol"; import {ChainAdmin} from "contracts/governance/ChainAdmin.sol"; import {ValidatorTimelock} from "contracts/state-transition/ValidatorTimelock.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {CTMDeploymentTracker} from "contracts/bridgehub/CTMDeploymentTracker.sol"; import {L1NativeTokenVault} from "contracts/bridge/ntv/L1NativeTokenVault.sol"; import {ExecutorFacet} from "contracts/state-transition/chain-deps/facets/Executor.sol"; @@ -142,14 +141,14 @@ contract EcosystemUpgrade_v27_1 is Script, DeployL1Script { } function setAddressesBasedOnBridgehub() internal virtual { - config.ownerAddress = Bridgehub(addresses.bridgehub.bridgehubProxy).owner(); - address ctm = Bridgehub(addresses.bridgehub.bridgehubProxy).chainTypeManager(config.eraChainId); + config.ownerAddress = L1Bridgehub(addresses.bridgehub.bridgehubProxy).owner(); + address ctm = L1Bridgehub(addresses.bridgehub.bridgehubProxy).chainTypeManager(config.eraChainId); addresses.stateTransition.chainTypeManagerProxy = ctm; // We have to set the diamondProxy address here - as it is used by multiple constructors (for example L1Nullifier etc) - addresses.stateTransition.diamondProxy = Bridgehub(addresses.bridgehub.bridgehubProxy).getZKChain( + addresses.stateTransition.diamondProxy = L1Bridgehub(addresses.bridgehub.bridgehubProxy).getZKChain( config.eraChainId ); - addresses.bridges.l1AssetRouterProxy = Bridgehub(addresses.bridgehub.bridgehubProxy).assetRouter(); + addresses.bridges.l1AssetRouterProxy = L1Bridgehub(addresses.bridgehub.bridgehubProxy).assetRouter(); addresses.vaults.l1NativeTokenVaultProxy = address( L1AssetRouter(addresses.bridges.l1AssetRouterProxy).nativeTokenVault() @@ -159,16 +158,16 @@ contract EcosystemUpgrade_v27_1 is Script, DeployL1Script { ); addresses.bridgehub.ctmDeploymentTrackerProxy = address( - Bridgehub(addresses.bridgehub.bridgehubProxy).l1CtmDeployer() + L1Bridgehub(addresses.bridgehub.bridgehubProxy).l1CtmDeployer() ); - addresses.bridgehub.messageRootProxy = address(Bridgehub(addresses.bridgehub.bridgehubProxy).messageRoot()); + addresses.bridgehub.messageRootProxy = address(L1Bridgehub(addresses.bridgehub.bridgehubProxy).messageRoot()); addresses.bridges.erc20BridgeProxy = address( L1AssetRouter(addresses.bridges.l1AssetRouterProxy).legacyBridge() ); - address eraDiamondProxy = Bridgehub(addresses.bridgehub.bridgehubProxy).getZKChain(config.eraChainId); + address eraDiamondProxy = L1Bridgehub(addresses.bridgehub.bridgehubProxy).getZKChain(config.eraChainId); (addresses.daAddresses.l1RollupDAValidator, ) = GettersFacet(eraDiamondProxy).getDAValidatorPair(); } diff --git a/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v28.s.sol b/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v28.s.sol index 3d4580ca07..b892a13e24 100644 --- a/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v28.s.sol +++ b/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v28.s.sol @@ -24,8 +24,7 @@ import {L1GenesisUpgrade} from "contracts/upgrades/L1GenesisUpgrade.sol"; import {GatewayUpgrade, GatewayUpgradeEncodedInput} from "contracts/upgrades/GatewayUpgrade.sol"; import {ChainAdmin} from "contracts/governance/ChainAdmin.sol"; import {ValidatorTimelock} from "contracts/state-transition/ValidatorTimelock.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {CTMDeploymentTracker} from "contracts/bridgehub/CTMDeploymentTracker.sol"; import {L1NativeTokenVault} from "contracts/bridge/ntv/L1NativeTokenVault.sol"; import {ExecutorFacet} from "contracts/state-transition/chain-deps/facets/Executor.sol"; @@ -47,7 +46,6 @@ import {INativeTokenVault} from "contracts/bridge/ntv/INativeTokenVault.sol"; import {BridgedStandardERC20} from "contracts/bridge/BridgedStandardERC20.sol"; import {AddressHasNoCode} from "../ZkSyncScriptErrors.sol"; import {ICTMDeploymentTracker} from "contracts/bridgehub/ICTMDeploymentTracker.sol"; -import {IMessageRoot} from "contracts/bridgehub/IMessageRoot.sol"; import {SYSTEM_UPGRADE_L2_TX_TYPE} from "contracts/common/Config.sol"; import {IL2ContractDeployer} from "contracts/common/interfaces/IL2ContractDeployer.sol"; import {L2ContractHelper} from "contracts/common/l2-helpers/L2ContractHelper.sol"; @@ -197,14 +195,14 @@ contract EcosystemUpgrade_v28 is Script, DeployL1Script { (addresses.stateTransition.defaultUpgrade) = deploySimpleContract("DefaultUpgrade", false); (addresses.stateTransition.genesisUpgrade) = deploySimpleContract("L1GenesisUpgrade", false); - addresses.bridgehub.bridgehubImplementation = deploySimpleContract("Bridgehub", false); + addresses.bridgehub.bridgehubImplementation = deploySimpleContract("L1Bridgehub", false); addresses.bridges.l1NullifierImplementation = deploySimpleContract("L1Nullifier", false); addresses.bridges.l1AssetRouterImplementation = deploySimpleContract("L1AssetRouter", false); addresses.vaults.l1NativeTokenVaultImplementation = deploySimpleContract("L1NativeTokenVault", false); upgradeAddresses.upgradeTimer = deploySimpleContract("GovernanceUpgradeTimer", false); - addresses.bridgehub.messageRootImplementation = deploySimpleContract("MessageRoot", false); + addresses.bridgehub.messageRootImplementation = deploySimpleContract("L1MessageRoot", false); deployStateTransitionDiamondFacets(); @@ -454,14 +452,16 @@ contract EcosystemUpgrade_v28 is Script, DeployL1Script { } function getBridgehubAdmin() public virtual returns (address admin) { - admin = Bridgehub(addresses.bridgehub.bridgehubProxy).admin(); + admin = L1Bridgehub(addresses.bridgehub.bridgehubProxy).admin(); } /// @notice This function is meant to only be used in tests function prepareCreateNewChainCall(uint256 chainId) public view virtual returns (Call[] memory result) { require(addresses.bridgehub.bridgehubProxy != address(0), "bridgehubProxyAddress is zero in newConfig"); - bytes32 newChainAssetId = Bridgehub(addresses.bridgehub.bridgehubProxy).baseTokenAssetId(gatewayConfig.chainId); + bytes32 newChainAssetId = L1Bridgehub(addresses.bridgehub.bridgehubProxy).baseTokenAssetId( + gatewayConfig.chainId + ); result = new Call[](1); result[0] = Call({ target: addresses.bridgehub.bridgehubProxy, @@ -482,7 +482,7 @@ contract EcosystemUpgrade_v28 is Script, DeployL1Script { } function setAddressesBasedOnBridgehub() internal virtual { - config.ownerAddress = Bridgehub(addresses.bridgehub.bridgehubProxy).owner(); + config.ownerAddress = L1Bridgehub(addresses.bridgehub.bridgehubProxy).owner(); address ctm = IBridgehub(addresses.bridgehub.bridgehubProxy).chainTypeManager(config.eraChainId); addresses.stateTransition.chainTypeManagerProxy = ctm; // We have to set the diamondProxy address here - as it is used by multiple constructors (for example L1Nullifier etc) @@ -494,7 +494,7 @@ contract EcosystemUpgrade_v28 is Script, DeployL1Script { ctmProtocolVersion != getNewProtocolVersion(), "The new protocol version is already present on the ChainTypeManager" ); - addresses.bridges.l1AssetRouterProxy = Bridgehub(addresses.bridgehub.bridgehubProxy).assetRouter(); + addresses.bridges.l1AssetRouterProxy = L1Bridgehub(addresses.bridgehub.bridgehubProxy).assetRouter(); addresses.vaults.l1NativeTokenVaultProxy = address( L1AssetRouter(addresses.bridges.l1AssetRouterProxy).nativeTokenVault() @@ -504,10 +504,10 @@ contract EcosystemUpgrade_v28 is Script, DeployL1Script { ); addresses.bridgehub.ctmDeploymentTrackerProxy = address( - Bridgehub(addresses.bridgehub.bridgehubProxy).l1CtmDeployer() + L1Bridgehub(addresses.bridgehub.bridgehubProxy).l1CtmDeployer() ); - addresses.bridgehub.messageRootProxy = address(Bridgehub(addresses.bridgehub.bridgehubProxy).messageRoot()); + addresses.bridgehub.messageRootProxy = address(L1Bridgehub(addresses.bridgehub.bridgehubProxy).messageRoot()); addresses.bridges.erc20BridgeProxy = address( L1AssetRouter(addresses.bridges.l1AssetRouterProxy).legacyBridge() @@ -515,9 +515,9 @@ contract EcosystemUpgrade_v28 is Script, DeployL1Script { newConfig.oldValidatorTimelock = ChainTypeManager(addresses.stateTransition.chainTypeManagerProxy) .validatorTimelock(); - newConfig.ecosystemAdminAddress = Bridgehub(addresses.bridgehub.bridgehubProxy).admin(); + newConfig.ecosystemAdminAddress = L1Bridgehub(addresses.bridgehub.bridgehubProxy).admin(); - address eraDiamondProxy = Bridgehub(addresses.bridgehub.bridgehubProxy).getZKChain(config.eraChainId); + address eraDiamondProxy = L1Bridgehub(addresses.bridgehub.bridgehubProxy).getZKChain(config.eraChainId); (addresses.daAddresses.l1RollupDAValidator, ) = GettersFacet(eraDiamondProxy).getDAValidatorPair(); } @@ -550,7 +550,7 @@ contract EcosystemUpgrade_v28 is Script, DeployL1Script { additionalDependencies[1] = ContractsBytecodesLib.getCreationCode("BridgedStandardERC20"); additionalDependencies[2] = ContractsBytecodesLib.getCreationCode("RollupL2DAValidator"); additionalDependencies[3] = ContractsBytecodesLib.getCreationCode("ValidiumL2DAValidator"); - additionalDependencies[3] = ContractsBytecodesLib.getCreationCode("DiamondProxy"); + additionalDependencies[4] = ContractsBytecodesLib.getCreationCode("DiamondProxy"); factoryDeps = SystemContractsProcessing.mergeBytesArrays(basicDependencies, additionalDependencies); factoryDeps = SystemContractsProcessing.deduplicateBytecodes(factoryDeps); @@ -566,11 +566,12 @@ contract EcosystemUpgrade_v28 is Script, DeployL1Script { l2TokenProxyBytecodeHash: getL2BytecodeHash("BeaconProxy"), aliasedL1Governance: AddressAliasHelper.applyL1ToL2Alias(config.ownerAddress), maxNumberOfZKChains: config.contracts.maxNumberOfChains, - bridgehubBytecodeHash: getL2BytecodeHash("Bridgehub"), - l2AssetRouterBytecodeHash: getL2BytecodeHash("L2AssetRouter"), - l2NtvBytecodeHash: getL2BytecodeHash("L2NativeTokenVault"), - messageRootBytecodeHash: getL2BytecodeHash("MessageRoot"), - chainAssetHandlerBytecodeHash: getL2BytecodeHash("ChainAssetHandler"), + bridgehubBytecodeInfo: abi.encode(getL2BytecodeHash("L2Bridgehub")), + l2AssetRouterBytecodeInfo: abi.encode(getL2BytecodeHash("L2AssetRouter")), + l2NtvBytecodeInfo: abi.encode(getL2BytecodeHash("L2NativeTokenVault")), + messageRootBytecodeInfo: abi.encode(getL2BytecodeHash("L2MessageRoot")), + chainAssetHandlerBytecodeInfo: abi.encode(getL2BytecodeHash("L2ChainAssetHandler")), + beaconDeployerInfo: abi.encode(getL2BytecodeHash("UpgradeableBeaconDeployer")), l2SharedBridgeLegacyImpl: address(0), // upgradeAddresses.expectedL2Addresses.l2SharedBridgeLegacyImpl, l2BridgedStandardERC20Impl: address(0), diff --git a/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v28_1_zk_os.s.sol b/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v28_1_zk_os.s.sol index d300f37e7d..613db71f4a 100644 --- a/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v28_1_zk_os.s.sol +++ b/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v28_1_zk_os.s.sol @@ -5,87 +5,10 @@ pragma solidity 0.8.28; import {Script, console2 as console} from "forge-std/Script.sol"; import {stdToml} from "forge-std/StdToml.sol"; -import {ProxyAdmin} from "@openzeppelin/contracts-v4/proxy/transparent/ProxyAdmin.sol"; -import {ITransparentUpgradeableProxy, TransparentUpgradeableProxy} from "@openzeppelin/contracts-v4/proxy/transparent/TransparentUpgradeableProxy.sol"; -import {IERC20} from "@openzeppelin/contracts-v4/token/ERC20/IERC20.sol"; -import {UpgradeableBeacon} from "@openzeppelin/contracts-v4/proxy/beacon/UpgradeableBeacon.sol"; -import {PrepareL1L2TransactionParams, StateTransitionDeployedAddresses, Utils} from "../Utils.sol"; -import {IBridgehub, L2TransactionRequestDirect} from "contracts/bridgehub/IBridgehub.sol"; -import {Multicall3} from "contracts/dev-contracts/Multicall3.sol"; -import {DualVerifier} from "contracts/state-transition/verifiers/DualVerifier.sol"; -import {TestnetVerifier} from "contracts/state-transition/verifiers/TestnetVerifier.sol"; -import {L1VerifierFflonk} from "contracts/state-transition/verifiers/L1VerifierFflonk.sol"; -import {L1VerifierPlonk} from "contracts/state-transition/verifiers/L1VerifierPlonk.sol"; -import {IVerifier, VerifierParams} from "contracts/state-transition/chain-interfaces/IVerifier.sol"; -import {DefaultUpgrade} from "contracts/upgrades/DefaultUpgrade.sol"; -import {Governance} from "contracts/governance/Governance.sol"; -import {L1GenesisUpgrade} from "contracts/upgrades/L1GenesisUpgrade.sol"; -import {GatewayUpgrade, GatewayUpgradeEncodedInput} from "contracts/upgrades/GatewayUpgrade.sol"; -import {ChainAdmin} from "contracts/governance/ChainAdmin.sol"; -import {ValidatorTimelock} from "contracts/state-transition/ValidatorTimelock.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; -import {CTMDeploymentTracker} from "contracts/bridgehub/CTMDeploymentTracker.sol"; -import {L1NativeTokenVault} from "contracts/bridge/ntv/L1NativeTokenVault.sol"; -import {ExecutorFacet} from "contracts/state-transition/chain-deps/facets/Executor.sol"; -import {AdminFacet} from "contracts/state-transition/chain-deps/facets/Admin.sol"; -import {MailboxFacet} from "contracts/state-transition/chain-deps/facets/Mailbox.sol"; -import {GettersFacet} from "contracts/state-transition/chain-deps/facets/Getters.sol"; -import {DiamondInit} from "contracts/state-transition/chain-deps/DiamondInit.sol"; -import {ChainTypeManager} from "contracts/state-transition/ChainTypeManager.sol"; -import {ChainCreationParams, ChainTypeManagerInitializeData, IChainTypeManager} from "contracts/state-transition/IChainTypeManager.sol"; -import {Diamond} from "contracts/state-transition/libraries/Diamond.sol"; -import {InitializeDataNewChain as DiamondInitializeDataNewChain} from "contracts/state-transition/chain-interfaces/IDiamondInit.sol"; -import {FeeParams, PubdataPricingMode} from "contracts/state-transition/chain-deps/ZKChainStorage.sol"; -import {L1AssetRouter} from "contracts/bridge/asset-router/L1AssetRouter.sol"; -import {L1ERC20Bridge} from "contracts/bridge/L1ERC20Bridge.sol"; -import {IL1Nullifier, L1Nullifier} from "contracts/bridge/L1Nullifier.sol"; -import {DiamondProxy} from "contracts/state-transition/chain-deps/DiamondProxy.sol"; -import {IL1AssetRouter} from "contracts/bridge/asset-router/IL1AssetRouter.sol"; -import {INativeTokenVault} from "contracts/bridge/ntv/INativeTokenVault.sol"; -import {BridgedStandardERC20} from "contracts/bridge/BridgedStandardERC20.sol"; -import {AddressHasNoCode} from "../ZkSyncScriptErrors.sol"; -import {ICTMDeploymentTracker} from "contracts/bridgehub/ICTMDeploymentTracker.sol"; -import {IMessageRoot} from "contracts/bridgehub/IMessageRoot.sol"; -import {SYSTEM_UPGRADE_L2_TX_TYPE} from "contracts/common/Config.sol"; -import {IL2ContractDeployer} from "contracts/common/interfaces/IL2ContractDeployer.sol"; -import {L2ContractHelper} from "contracts/common/l2-helpers/L2ContractHelper.sol"; -import {AddressAliasHelper} from "contracts/vendor/AddressAliasHelper.sol"; -import {IL1NativeTokenVault} from "contracts/bridge/ntv/IL1NativeTokenVault.sol"; -import {L1NullifierDev} from "contracts/dev-contracts/L1NullifierDev.sol"; -import {AccessControlRestriction} from "contracts/governance/AccessControlRestriction.sol"; -import {PermanentRestriction} from "contracts/governance/PermanentRestriction.sol"; -import {IAssetRouterBase} from "contracts/bridge/asset-router/IAssetRouterBase.sol"; -import {ContractsBytecodesLib} from "../ContractsBytecodesLib.sol"; -import {ValidiumL1DAValidator} from "contracts/state-transition/data-availability/ValidiumL1DAValidator.sol"; -import {Call} from "contracts/governance/Common.sol"; -import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable-v4/access/Ownable2StepUpgradeable.sol"; -import {IZKChain} from "contracts/state-transition/chain-interfaces/IZKChain.sol"; -import {ProposedUpgrade} from "contracts/upgrades/BaseZkSyncUpgrade.sol"; -import {UpgradeStageValidator} from "contracts/upgrades/UpgradeStageValidator.sol"; - -import {L2CanonicalTransaction} from "contracts/common/Messaging.sol"; -import {L2_COMPLEX_UPGRADER_ADDR, L2_DEPLOYER_SYSTEM_CONTRACT_ADDR, L2_FORCE_DEPLOYER_ADDR, L2_VERSION_SPECIFIC_UPGRADER_ADDR} from "contracts/common/l2-helpers/L2ContractAddresses.sol"; -import {IComplexUpgrader} from "contracts/state-transition/l2-deps/IComplexUpgrader.sol"; -import {TransitionaryOwner} from "contracts/governance/TransitionaryOwner.sol"; -import {SystemContractsProcessing} from "./SystemContractsProcessing.s.sol"; -import {BytecodePublisher} from "./BytecodePublisher.s.sol"; -import {BytecodesSupplier} from "contracts/upgrades/BytecodesSupplier.sol"; -import {GovernanceUpgradeTimer} from "contracts/upgrades/GovernanceUpgradeTimer.sol"; -import {L2WrappedBaseTokenStore} from "contracts/bridge/L2WrappedBaseTokenStore.sol"; -import {RollupDAManager} from "contracts/state-transition/data-availability/RollupDAManager.sol"; -import {Create2AndTransfer} from "../Create2AndTransfer.sol"; - -import {ContractsConfig, DeployedAddresses, TokensConfig} from "../DeployUtils.s.sol"; -import {FixedForceDeploymentsData} from "contracts/state-transition/l2-deps/IL2GenesisUpgrade.sol"; - -import {DeployL1Script} from "../DeployL1.s.sol"; - +import {StateTransitionDeployedAddresses, Utils, FacetCut} from "../Utils.sol"; import {DefaultEcosystemUpgrade} from "../upgrade/DefaultEcosystemUpgrade.s.sol"; -import {SemVer} from "../../contracts/common/libraries/SemVer.sol"; - -/// @notice Script used for v29 upgrade flow +/// @notice Script used for v28_1 upgrade flow contract EcosystemUpgrade_v28_1_zk_os is Script, DefaultEcosystemUpgrade { using stdToml for string; @@ -107,62 +30,14 @@ contract EcosystemUpgrade_v28_1_zk_os is Script, DefaultEcosystemUpgrade { deployVerifiers(); deployUpgradeStageValidator(); - (addresses.stateTransition.defaultUpgrade) = deployUsedUpgradeContract(); upgradeAddresses.upgradeTimer = deploySimpleContract("GovernanceUpgradeTimer", false); + upgradeConfig.ecosystemContractsDeployed = true; } - function getProposedUpgrade( + function getFacetCuts( StateTransitionDeployedAddresses memory stateTransition - ) public override returns (ProposedUpgrade memory proposedUpgrade) { - Bridgehub bridgehub = Bridgehub(addresses.bridgehub.bridgehubProxy); - IZKChain diamondProxy = IZKChain(bridgehub.getZKChain(config.eraChainId)); - - console.log("Diamond proxy address: %s", address(diamondProxy)); - (uint32 major, uint32 minor, uint32 patch) = diamondProxy.getSemverProtocolVersion(); - console.log("Current protocol version: %s.%s.%s", major, minor, patch); - uint256 oldVersion = SemVer.packSemVer(major, minor, patch); - uint256 newVersion = SemVer.packSemVer(major, minor, patch + 1); - - proposedUpgrade = ProposedUpgrade({ - l2ProtocolUpgradeTx: _composeEmptyUpgradeTx(), - bootloaderHash: bytes32(0), - defaultAccountHash: bytes32(0), - evmEmulatorHash: bytes32(0), - verifier: stateTransition.verifier, - verifierParams: VerifierParams({ - recursionNodeLevelVkHash: bytes32(0), - recursionLeafLevelVkHash: bytes32(0), - recursionCircuitsSetVksHash: bytes32(0) - }), - l1ContractsUpgradeCalldata: new bytes(0), - postUpgradeCalldata: new bytes(0), - upgradeTimestamp: 0, - newProtocolVersion: newVersion - }); - } - - /// @notice Build empty L1 -> L2 upgrade tx - function _composeEmptyUpgradeTx() internal virtual returns (L2CanonicalTransaction memory transaction) { - transaction = L2CanonicalTransaction({ - txType: 0, - from: uint256(0), - to: uint256(0), - gasLimit: 0, - gasPerPubdataByteLimit: 0, - maxFeePerGas: 0, - maxPriorityFeePerGas: 0, - paymaster: uint256(uint160(address(0))), - nonce: 0, - value: 0, - reserved: [uint256(0), uint256(0), uint256(0), uint256(0)], - data: new bytes(0), - signature: new bytes(0), - factoryDeps: new uint256[](0), - paymasterInput: new bytes(0), - // Reserved dynamic type for the future use-case. Using it should be avoided, - // But it is still here, just in case we want to enable some additional functionality - reservedDynamic: new bytes(0) - }); + ) internal virtual override returns (FacetCut[] memory facetCuts) { + facetCuts = new FacetCut[](0); } } diff --git a/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v29.s.sol b/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v29.s.sol index 30eebc381d..83b3871c25 100644 --- a/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v29.s.sol +++ b/l1-contracts/deploy-scripts/upgrade/EcosystemUpgrade_v29.s.sol @@ -23,8 +23,8 @@ import {L1GenesisUpgrade} from "contracts/upgrades/L1GenesisUpgrade.sol"; import {GatewayUpgrade, GatewayUpgradeEncodedInput} from "contracts/upgrades/GatewayUpgrade.sol"; import {ChainAdmin} from "contracts/governance/ChainAdmin.sol"; import {ValidatorTimelock} from "contracts/state-transition/ValidatorTimelock.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; +import {L1MessageRoot} from "contracts/bridgehub/L1MessageRoot.sol"; import {CTMDeploymentTracker} from "contracts/bridgehub/CTMDeploymentTracker.sol"; import {L1NativeTokenVault} from "contracts/bridge/ntv/L1NativeTokenVault.sol"; import {ExecutorFacet} from "contracts/state-transition/chain-deps/facets/Executor.sol"; @@ -33,7 +33,7 @@ import {MailboxFacet} from "contracts/state-transition/chain-deps/facets/Mailbox import {GettersFacet} from "contracts/state-transition/chain-deps/facets/Getters.sol"; import {DiamondInit} from "contracts/state-transition/chain-deps/DiamondInit.sol"; import {ChainTypeManager} from "contracts/state-transition/ChainTypeManager.sol"; -import {ChainAssetHandler} from "contracts/bridgehub/ChainAssetHandler.sol"; +import {L1ChainAssetHandler} from "contracts/bridgehub/L1ChainAssetHandler.sol"; import {ChainCreationParams, ChainTypeManagerInitializeData, IChainTypeManager} from "contracts/state-transition/IChainTypeManager.sol"; import {Diamond} from "contracts/state-transition/libraries/Diamond.sol"; import {InitializeDataNewChain as DiamondInitializeDataNewChain} from "contracts/state-transition/chain-interfaces/IDiamondInit.sol"; @@ -214,7 +214,7 @@ contract EcosystemUpgrade_v29 is Script, DefaultEcosystemUpgrade { ( addresses.bridgehub.chainAssetHandlerImplementation, addresses.bridgehub.chainAssetHandlerProxy - ) = deployTuppWithContract("ChainAssetHandler", false); + ) = deployTuppWithContract("L1ChainAssetHandler", false); ( addresses.stateTransition.validatorTimelockImplementation, @@ -331,7 +331,7 @@ contract EcosystemUpgrade_v29 is Script, DefaultEcosystemUpgrade { calls = new Call[](1); calls[0] = Call({ target: addresses.bridgehub.bridgehubProxy, - data: abi.encodeCall(Bridgehub.setChainAssetHandler, (addresses.bridgehub.chainAssetHandlerProxy)), + data: abi.encodeCall(IBridgehub.setChainAssetHandler, (addresses.bridgehub.chainAssetHandlerProxy)), value: 0 }); } @@ -421,38 +421,4 @@ contract EcosystemUpgrade_v29 is Script, DefaultEcosystemUpgrade { function deployUsedUpgradeContractGW() internal override returns (address) { return deployGWContract("L1V29Upgrade"); } - - function getInitializeCalldata( - string memory contractName, - bool isZKBytecode - ) internal virtual override returns (bytes memory) { - if (compareStrings(contractName, "ValidatorTimelock")) { - if (!isZKBytecode) { - return - abi.encodeCall( - ValidatorTimelock.initialize, - (config.ownerAddress, uint32(config.contracts.validatorTimelockExecutionDelay)) - ); - } else { - // On Gateway, the delay is always 0. - return - abi.encodeCall( - ValidatorTimelock.initialize, - (AddressAliasHelper.applyL1ToL2Alias(config.ownerAddress), uint32(0)) - ); - } - } else if (compareStrings(contractName, "ChainAssetHandler")) { - if (!isZKBytecode) { - return abi.encodeCall(ChainAssetHandler.initialize, (config.ownerAddress)); - } else { - return - abi.encodeCall( - ChainAssetHandler.initialize, - AddressAliasHelper.applyL1ToL2Alias(config.ownerAddress) - ); - } - } else { - return super.getInitializeCalldata(contractName, isZKBytecode); - } - } } diff --git a/l1-contracts/deploy-scripts/upgrade/FinalizeUpgrade.s.sol b/l1-contracts/deploy-scripts/upgrade/FinalizeUpgrade.s.sol new file mode 100644 index 0000000000..5ea7c08687 --- /dev/null +++ b/l1-contracts/deploy-scripts/upgrade/FinalizeUpgrade.s.sol @@ -0,0 +1,305 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.28; + +import {Script, console2 as console} from "forge-std/Script.sol"; +import {stdToml} from "forge-std/StdToml.sol"; +import {Utils, L2_BRIDGEHUB_ADDRESS, L2_ASSET_ROUTER_ADDRESS, L2_NATIVE_TOKEN_VAULT_ADDRESS, L2_MESSAGE_ROOT_ADDRESS} from "../Utils.sol"; +import {L2ContractHelper} from "contracts/common/libraries/L2ContractHelper.sol"; +import {L2ContractsBytecodesLib} from "../L2ContractsBytecodesLib.sol"; +import {IZKChain} from "contracts/state-transition/chain-interfaces/IZKChain.sol"; +import {IAdmin} from "contracts/state-transition/chain-interfaces/IAdmin.sol"; +import {AccessControlRestriction} from "contracts/governance/AccessControlRestriction.sol"; +import {ChainAdmin} from "contracts/governance/ChainAdmin.sol"; +import {Call as GovernanceCall} from "contracts/governance/Common.sol"; // renamed to avoid conflict +import {Diamond} from "contracts/state-transition/libraries/Diamond.sol"; + +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; +import {L1NativeTokenVault} from "contracts/bridge/ntv/L1NativeTokenVault.sol"; +import {ETH_TOKEN_ADDRESS} from "contracts/common/Config.sol"; +import {IERC20} from "@openzeppelin/contracts-v4/token/ERC20/IERC20.sol"; + +import {L1Nullifier} from "contracts/bridge/L1Nullifier.sol"; +import {MulticallWithGas} from "./MulticallWithGas.sol"; + +/// @notice Script intended to help us finalize the governance upgrade +contract FinalizeUpgrade is Script { + using stdToml for string; + + function initChains(address bridgehub, uint256[] calldata chains) external { + // We do not change this method + for (uint256 i = 0; i < chains.length; ++i) { + L1Bridgehub bh = L1Bridgehub(bridgehub); + + if (bh.baseTokenAssetId(chains[i]) == bytes32(0)) { + vm.broadcast(); + L1Bridgehub(bridgehub).registerLegacyChain(chains[i]); + } + } + } + + function initTokens( + address payable l1NativeTokenVault, + address[] calldata tokens, + uint256[] calldata chains + ) external { + // We do not change this method + L1NativeTokenVault vault = L1NativeTokenVault(l1NativeTokenVault); + address nullifier = address(vault.L1_NULLIFIER()); + + for (uint256 i = 0; i < tokens.length; i++) { + if (vault.assetId(tokens[i]) == bytes32(0)) { + if (tokens[i] != ETH_TOKEN_ADDRESS) { + uint256 balance = IERC20(tokens[i]).balanceOf(nullifier); + if (balance != 0) { + vm.broadcast(); + vault.transferFundsFromSharedBridge(tokens[i]); + } else { + vm.broadcast(); + vault.registerToken(tokens[i]); + } + } else { + vm.broadcast(); + vault.registerEthToken(); + + uint256 balance = address(nullifier).balance; + if (balance != 0) { + vm.broadcast(); + vault.transferFundsFromSharedBridge(tokens[i]); + } + } + } + + for (uint256 j = 0; j < chains.length; j++) { + vm.broadcast(); + vault.updateChainBalancesFromSharedBridge(tokens[i], chains[j]); + } + } + } + + uint256 constant GAS_PER_TX = 500_000; // Adjust as needed + uint256 constant MAX_CALLS_PER_BATCH = 15; // Adjust as needed + + // Helper function to flush calls to aggregator + function flushBatch(MulticallWithGas _aggregator, MulticallWithGas.Call[] memory _calls, uint256 _count) internal { + if (_count == 0) { + return; // nothing to flush + } + // Create a smaller array of exactly _count size + MulticallWithGas.Call[] memory batch = new MulticallWithGas.Call[](_count); + for (uint256 k = 0; k < _count; k++) { + batch[k] = _calls[k]; + } + + // We can do a single broadcast for the entire batch + vm.broadcast(); + _aggregator.aggregate{gas: _count * GAS_PER_TX + 1_000_000}(batch, false); + } + + // Helper function to add a call to our current calls buffer + function addCall( + MulticallWithGas.Call[] memory _calls, + uint256 _callIndex, + address _to, + bytes memory _data + ) internal returns (uint256) { + _calls[_callIndex] = MulticallWithGas.Call({to: _to, gasLimit: GAS_PER_TX, data: _data}); + + return _callIndex + 1; // increment the pointer + } + + function saturatingSub(uint256 x, uint256 y) internal pure returns (uint256) { + if (x < y) { + return 0; + } else { + return x - y; + } + } + + struct FinalizeInitParams { + MulticallWithGas aggregator; + address bridgehub; + address payable l1NativeTokenVault; + address[] tokens; + uint256[] chains; + address[] pairToken; + uint256[] pairChainId; + } + + function finalizeInitInner(FinalizeInitParams memory params) internal { + // We'll build up an array of aggregator calls in memory. + // Because memory arrays in Solidity are fixed-length once created, + // we'll do an approach that increments a pointer until we hit the max, + // then flushes to the aggregator. + + MulticallWithGas.Call[] memory calls = new MulticallWithGas.Call[](MAX_CALLS_PER_BATCH); + uint256 callIndex = 0; + + // Preventing stack too deep error + { + console.log( + "Total number of items to process: ", + params.tokens.length + params.chains.length + params.pairToken.length + ); + console.log("Tokens: ", params.tokens.length); + console.log("Chains: ", params.chains.length); + console.log("Pairs: ", params.pairToken.length); + uint256 currentPosition = vm.envUint("START_SEGMENT"); + uint256 currentEnd = vm.envUint("END_SEGMENT"); + + console.log("Processing the following segment :"); + console.log("Start: ", currentPosition); + console.log("End: ", currentEnd); + + // --------------------------------------------------- + // 1. Combine logic of initChains + // --------------------------------------------------- + for (uint256 i = currentPosition; i < params.chains.length && i < currentEnd; i++) { + L1Bridgehub bh = L1Bridgehub(params.bridgehub); + console.log("Processing chain: ", params.chains[i]); + if (bh.baseTokenAssetId(params.chains[i]) == bytes32(0)) { + // Register legacy chain if needed + bytes memory data = abi.encodeWithSelector( + L1Bridgehub.registerLegacyChain.selector, + params.chains[i] + ); + + // Add call to aggregator calls array + callIndex = addCall(calls, callIndex, params.bridgehub, data); + + // If we've hit max calls, flush + if (callIndex == MAX_CALLS_PER_BATCH) { + flushBatch(params.aggregator, calls, callIndex); + callIndex = 0; + } + } + } + + currentPosition = saturatingSub(currentPosition, params.chains.length); + currentEnd = saturatingSub(currentEnd, params.chains.length); + + // --------------------------------------------------- + // 2. Combine logic of initTokens + // --------------------------------------------------- + L1NativeTokenVault vault = L1NativeTokenVault(params.l1NativeTokenVault); + address nullifier = address(vault.L1_NULLIFIER()); + + for (uint256 i = currentPosition; i < params.tokens.length && i < currentEnd; i++) { + console.log("Processing token: ", params.tokens[i]); + + // Check if token is already registered + if (vault.assetId(params.tokens[i]) == bytes32(0)) { + // If not, we either register or transfer funds + if (params.tokens[i] != ETH_TOKEN_ADDRESS) { + uint256 balance = IERC20(params.tokens[i]).balanceOf(nullifier); + if (balance != 0) { + // aggregator call: vault.transferFundsFromSharedBridge(tokens[i]) + bytes memory data = abi.encodeWithSelector( + vault.transferFundsFromSharedBridge.selector, + params.tokens[i] + ); + callIndex = addCall(calls, callIndex, params.l1NativeTokenVault, data); + } else { + // aggregator call: vault.registerToken(tokens[i]) + bytes memory data = abi.encodeWithSelector(vault.registerToken.selector, params.tokens[i]); + callIndex = addCall(calls, callIndex, params.l1NativeTokenVault, data); + } + } else { + // aggregator call: vault.registerEthToken() + { + bytes memory data = abi.encodeWithSelector(vault.registerEthToken.selector); + callIndex = addCall(calls, callIndex, params.l1NativeTokenVault, data); + } + + if (callIndex == MAX_CALLS_PER_BATCH) { + flushBatch(params.aggregator, calls, callIndex); + callIndex = 0; + } + + uint256 balance = address(nullifier).balance; + if (balance != 0) { + // aggregator call: vault.transferFundsFromSharedBridge(ETH_TOKEN_ADDRESS) + bytes memory data = abi.encodeWithSelector( + vault.transferFundsFromSharedBridge.selector, + params.tokens[i] + ); + callIndex = addCall(calls, callIndex, params.l1NativeTokenVault, data); + } + } + + // Flush if needed + if (callIndex == MAX_CALLS_PER_BATCH) { + flushBatch(params.aggregator, calls, callIndex); + callIndex = 0; + } + } + } + + currentPosition = saturatingSub(currentPosition, params.tokens.length); + currentEnd = saturatingSub(currentEnd, params.tokens.length); + + for (uint256 i = currentPosition; i < params.pairToken.length && i < currentEnd; i++) { + uint256 chain = params.pairChainId[i]; + address token = params.pairToken[i]; + + console.log("Processing pair: "); + console.log("\tChain: ", chain); + console.log("\tToken: ", token); + + if (L1Nullifier(nullifier).chainBalance(chain, token) == 0) { + continue; + } + + bytes memory data = abi.encodeWithSelector( + vault.updateChainBalancesFromSharedBridge.selector, + token, + chain + ); + callIndex = addCall(calls, callIndex, params.l1NativeTokenVault, data); + + if (callIndex == MAX_CALLS_PER_BATCH) { + flushBatch(params.aggregator, calls, callIndex); + callIndex = 0; + } + } + } + + // --------------------------------------------------- + // 3. Final flush if there's anything left in the buffer + // --------------------------------------------------- + flushBatch(params.aggregator, calls, callIndex); + + console.log("Batched calls successfully sent via MulticallWithGas."); + } + + /// @notice Combines the logic of `initChains` and `initTokens`, but + /// uses MulticallWithGas to batch these calls in chunks. + /// + /// @param bridgehub Address of the Bridgehub contract + /// @param l1NativeTokenVault Address of the L1NativeTokenVault contract + /// @param tokens Array of token addresses to initialize + /// @param chains Array of chain IDs to register & update balances + function finalizeInit( + MulticallWithGas aggregator, + address bridgehub, + address payable l1NativeTokenVault, + address[] calldata tokens, + uint256[] calldata chains, + address[] calldata pairToken, + uint256[] calldata pairChainId + ) external { + // Using an inner function to prevent "stack too deep" error. + // I do not use struct rightaway as it makes it harder to encode the input + // via rust-rs. + finalizeInitInner( + FinalizeInitParams({ + aggregator: aggregator, + bridgehub: bridgehub, + l1NativeTokenVault: l1NativeTokenVault, + tokens: tokens, + chains: chains, + pairToken: pairToken, + pairChainId: pairChainId + }) + ); + } +} diff --git a/l1-contracts/deploy-scripts/upgrade/SystemContractsProcessing.s.sol b/l1-contracts/deploy-scripts/upgrade/SystemContractsProcessing.s.sol index a35365e0ba..be5d624deb 100644 --- a/l1-contracts/deploy-scripts/upgrade/SystemContractsProcessing.s.sol +++ b/l1-contracts/deploy-scripts/upgrade/SystemContractsProcessing.s.sol @@ -349,7 +349,7 @@ library SystemContractsProcessing { function getOtherContractsBytecodes() internal view returns (bytes[] memory result) { result = new bytes[](OTHER_BUILT_IN_CONTRACTS_COUNT); - result[0] = ContractsBytecodesLib.getCreationCode("Bridgehub"); + result[0] = ContractsBytecodesLib.getCreationCode("L2Bridgehub"); result[1] = ContractsBytecodesLib.getCreationCode("L2AssetRouter"); result[2] = ContractsBytecodesLib.getCreationCode("L2NativeTokenVault"); result[3] = ContractsBytecodesLib.getCreationCode("MessageRoot"); diff --git a/l1-contracts/foundry.toml b/l1-contracts/foundry.toml index 1822884f9f..5fd1926ecf 100644 --- a/l1-contracts/foundry.toml +++ b/l1-contracts/foundry.toml @@ -43,7 +43,7 @@ remappings = [ "@openzeppelin/contracts-upgradeable-v4/=lib/openzeppelin-contracts-upgradeable-v4/contracts/", ] optimizer = true -optimizer_runs = 9999999 +optimizer_runs = 28000 # TODO(X): the latest foundry disallows reverts that happen inside the internal calls and we should fix tests that rely # on such reverts allow_internal_expect_revert = true diff --git a/l1-contracts/package.json b/l1-contracts/package.json index 92ba568d6d..af86e5a23c 100644 --- a/l1-contracts/package.json +++ b/l1-contracts/package.json @@ -18,6 +18,7 @@ "@types/mocha": "^8.2.3", "argparse": "^1.0.10", "axios": "^0.21.1", + "blakejs": "^1.2.1", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", "chalk": "^4.1.0", @@ -57,7 +58,8 @@ "scripts": { "build": "hardhat compile && CONTRACTS_BASE_NETWORK_ZKSYNC=true hardhat compile ", "build-l1": "hardhat compile", - "build:foundry": "forge build && forge build --zksync --skip '*/l1-contracts/test/*'", + "build:foundry": "forge build --skip contracts/bridgehub/L1Bridgehub.sol && forge build --optimizer-runs 28000 contracts/bridgehub/L1Bridgehub.sol && forge build --zksync --skip '*/l1-contracts/test/*'", + "build:foundry-fast": "forge build --optimizer-runs 200 && forge build --zksync --skip '*/l1-contracts/test/*'", "clean": "hardhat clean && CONTRACTS_BASE_NETWORK_ZKSYNC=true hardhat clean", "clean:foundry": "forge clean", "test": "yarn workspace da-contracts build && hardhat test test/unit_tests/*.spec.ts --network hardhat", diff --git a/l1-contracts/scripts/blake2s256.ts b/l1-contracts/scripts/blake2s256.ts new file mode 100644 index 0000000000..085811d9c8 --- /dev/null +++ b/l1-contracts/scripts/blake2s256.ts @@ -0,0 +1,32 @@ +#!/usr/bin/env ts-node + +import * as blakejs from "blakejs"; + +// Helper to convert a hex string to Uint8Array +function hexToBytes(hex: string): Uint8Array { + if (hex.startsWith("0x")) hex = hex.slice(2); + if (hex.length % 2 !== 0) { + throw new Error("Invalid hex string"); + } + const bytes = new Uint8Array(hex.length / 2); + for (let i = 0; i < bytes.length; i++) { + bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16); + } + return bytes; +} + +// Grab the input from the command-line arguments (excluding node and script path) +const input = process.argv.slice(2).join(" "); +if (!input) { + console.error("Usage: blake2s-hash "); + process.exit(1); +} + +// Convert input hex to bytes +const inputBytes = hexToBytes(input); + +// Compute the BLAKE2s hash +const hash = blakejs.blake2sHex(inputBytes); + +// Output +console.log(hash); diff --git a/l1-contracts/snapshots/Executor.json b/l1-contracts/snapshots/Executor.json deleted file mode 100644 index 4bd567ef37..0000000000 --- a/l1-contracts/snapshots/Executor.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "commit": "177141", - "execute": "103822", - "precommit": "60124", - "prove": "72189" -} diff --git a/l1-contracts/test/foundry/l1/integration/DeploymentTest.t.sol b/l1-contracts/test/foundry/l1/integration/DeploymentTest.t.sol index a5e2572455..8c464df1e6 100644 --- a/l1-contracts/test/foundry/l1/integration/DeploymentTest.t.sol +++ b/l1-contracts/test/foundry/l1/integration/DeploymentTest.t.sol @@ -25,7 +25,7 @@ import {IChainTypeManager} from "contracts/state-transition/IChainTypeManager.so import {AddressesAlreadyGenerated} from "test/foundry/L1TestsErrors.sol"; import {DataEncoding} from "contracts/common/libraries/DataEncoding.sol"; import {IncorrectBridgeHubAddress} from "contracts/common/L1ContractErrors.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L1MessageRoot} from "contracts/bridgehub/L1MessageRoot.sol"; import {ConfigSemaphore} from "./utils/_ConfigSemaphore.sol"; contract DeploymentTests is L1ContractDeployer, ZKChainDeployer, TokenDeployer, L2TxMocker, ConfigSemaphore { @@ -117,7 +117,7 @@ contract DeploymentTests is L1ContractDeployer, ZKChainDeployer, TokenDeployer, assertEq(addresses.bridgehub.settlementLayer(randomChainId), block.chainid); address messageRoot = address(addresses.bridgehub.messageRoot()); - assertTrue(MessageRoot(messageRoot).chainIndex(randomChainId) != 0); + assertTrue(L1MessageRoot(messageRoot).chainIndex(randomChainId) != 0); } function test_registerAlreadyDeployedZKChain() public { diff --git a/l1-contracts/test/foundry/l1/integration/_GatewayPreparationForTests.sol b/l1-contracts/test/foundry/l1/integration/_GatewayPreparationForTests.sol index 856e4af1c4..e208c86a4e 100644 --- a/l1-contracts/test/foundry/l1/integration/_GatewayPreparationForTests.sol +++ b/l1-contracts/test/foundry/l1/integration/_GatewayPreparationForTests.sol @@ -2,7 +2,7 @@ import {stdToml} from "forge-std/StdToml.sol"; import {Script, console2 as console} from "forge-std/Script.sol"; import {GatewayGovernanceUtils} from "deploy-scripts/gateway/GatewayGovernanceUtils.s.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {DeployGatewayTransactionFilterer} from "deploy-scripts/gateway/DeployGatewayTransactionFilterer.s.sol"; @@ -43,7 +43,7 @@ contract GatewayPreparationForTests is Script, GatewayGovernanceUtils { function governanceRegisterGateway() public { Call[] memory calls = _getRegisterSettlementLayerCalls(); - Utils.executeCalls(Bridgehub(_gatewayGovernanceConfig.bridgehubProxy).owner(), bytes32(0), 0, calls); + Utils.executeCalls(L1Bridgehub(_gatewayGovernanceConfig.bridgehubProxy).owner(), bytes32(0), 0, calls); } function deployAndSetGatewayTransactionFilterer() public { @@ -79,7 +79,7 @@ contract GatewayPreparationForTests is Script, GatewayGovernanceUtils { address[] memory addressesToGrantWhitelist = new address[](2); addressesToGrantWhitelist[0] = _gatewayGovernanceConfig.ctmDeploymentTrackerProxy; - addressesToGrantWhitelist[1] = Bridgehub(_gatewayGovernanceConfig.bridgehubProxy).owner(); + addressesToGrantWhitelist[1] = L1Bridgehub(_gatewayGovernanceConfig.bridgehubProxy).owner(); adminScript.grantGatewayWhitelist( _gatewayGovernanceConfig.bridgehubProxy, @@ -119,7 +119,7 @@ contract GatewayPreparationForTests is Script, GatewayGovernanceUtils { _ctmChainId: 0 }) ); - Utils.executeCalls(Bridgehub(_gatewayGovernanceConfig.bridgehubProxy).owner(), bytes32(0), 0, calls); + Utils.executeCalls(L1Bridgehub(_gatewayGovernanceConfig.bridgehubProxy).owner(), bytes32(0), 0, calls); } function run() public { diff --git a/l1-contracts/test/foundry/l1/integration/_SharedL1ContractDeployer.t.sol b/l1-contracts/test/foundry/l1/integration/_SharedL1ContractDeployer.t.sol index d83bce2d7c..da946a6841 100644 --- a/l1-contracts/test/foundry/l1/integration/_SharedL1ContractDeployer.t.sol +++ b/l1-contracts/test/foundry/l1/integration/_SharedL1ContractDeployer.t.sol @@ -5,6 +5,7 @@ import {StdStorage, Test, stdStorage, console} from "forge-std/Test.sol"; import {DeployL1CoreContractsIntegrationScript} from "./deploy-scripts/DeployL1CoreContractsIntegration.s.sol"; import {DeployL1IntegrationScript} from "./deploy-scripts/DeployL1Integration.s.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {RegisterCTM} from "deploy-scripts/RegisterCTM.s.sol"; import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; import {L1AssetRouter} from "contracts/bridge/asset-router/L1AssetRouter.sol"; @@ -25,7 +26,7 @@ contract L1ContractDeployer is Test { DeployedAddresses ecosystemAddresses; address bridgehubProxyAddress; address bridgehubOwnerAddress; - Bridgehub bridgehub; + L1Bridgehub bridgehub; CTMDeploymentTracker ctmDeploymentTracker; L1AssetRouter sharedBridge; L1Nullifier l1Nullifier; @@ -71,7 +72,7 @@ contract L1ContractDeployer is Test { addresses.ecosystemAddresses = l1Script.getAddresses(); ecosystemConfig = l1Script.getConfig(); - addresses.bridgehub = Bridgehub(addresses.ecosystemAddresses.bridgehub.bridgehubProxy); + addresses.bridgehub = L1Bridgehub(addresses.ecosystemAddresses.bridgehub.bridgehubProxy); addresses.chainTypeManager = IChainTypeManager( addresses.ecosystemAddresses.stateTransition.chainTypeManagerProxy ); diff --git a/l1-contracts/test/foundry/l1/integration/deploy-scripts/DeployIntegrationUtils.s.sol b/l1-contracts/test/foundry/l1/integration/deploy-scripts/DeployIntegrationUtils.s.sol index 9ddb02780d..e67f932917 100644 --- a/l1-contracts/test/foundry/l1/integration/deploy-scripts/DeployIntegrationUtils.s.sol +++ b/l1-contracts/test/foundry/l1/integration/deploy-scripts/DeployIntegrationUtils.s.sol @@ -15,8 +15,7 @@ abstract contract DeployIntegrationUtils is Script, DeployUtils { function test() internal virtual override {} function getInitializeCalldata( - string memory contractName, - bool isZKBytecode + string memory contractName ) internal virtual override returns (bytes memory); function getFacetCuts( diff --git a/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2Erc20L1Test.t.sol b/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2Erc20L1Test.t.sol index 25d56fdff3..aff28818fd 100644 --- a/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2Erc20L1Test.t.sol +++ b/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2Erc20L1Test.t.sol @@ -64,9 +64,8 @@ contract L2Erc20L1Test is Test, SharedL2ContractL1Deployer, L2Erc20TestAbstract } function getInitializeCalldata( - string memory contractName, - bool isZKBytecode + string memory contractName ) internal virtual override(DeployIntegrationUtils, SharedL2ContractL1Deployer) returns (bytes memory) { - return super.getInitializeCalldata(contractName, isZKBytecode); + return super.getInitializeCalldata(contractName); } } diff --git a/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2GatewayL1Test.t.sol b/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2GatewayL1Test.t.sol index 64f786b291..b106c08ac3 100644 --- a/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2GatewayL1Test.t.sol +++ b/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2GatewayL1Test.t.sol @@ -64,9 +64,8 @@ contract L2GatewayL1Test is Test, SharedL2ContractL1Deployer, L2GatewayTestAbstr } function getInitializeCalldata( - string memory contractName, - bool isZKBytecode + string memory contractName ) internal virtual override(DeployIntegrationUtils, SharedL2ContractL1Deployer) returns (bytes memory) { - return super.getInitializeCalldata(contractName, isZKBytecode); + return super.getInitializeCalldata(contractName); } } diff --git a/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2NativeTokenVaultL1Test.t.sol b/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2NativeTokenVaultL1Test.t.sol index 98e0141cc1..f9a3087217 100644 --- a/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2NativeTokenVaultL1Test.t.sol +++ b/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2NativeTokenVaultL1Test.t.sol @@ -64,9 +64,8 @@ contract L2NativeTokenVaultL1Test is Test, SharedL2ContractL1Deployer, L2NativeT } function getInitializeCalldata( - string memory contractName, - bool isZKBytecode + string memory contractName ) internal virtual override(DeployIntegrationUtils, SharedL2ContractL1Deployer) returns (bytes memory) { - return super.getInitializeCalldata(contractName, isZKBytecode); + return super.getInitializeCalldata(contractName); } } diff --git a/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2UtilsBase.sol b/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2UtilsBase.sol index f75b612b1d..589f8ca790 100644 --- a/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2UtilsBase.sol +++ b/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/L2UtilsBase.sol @@ -6,7 +6,7 @@ import {Vm} from "forge-std/Vm.sol"; import {StdStorage, Test, stdStorage, stdToml} from "forge-std/Test.sol"; import {Script, console2 as console} from "forge-std/Script.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L2Bridgehub} from "contracts/bridgehub/L2Bridgehub.sol"; import {L1AssetRouter} from "contracts/bridge/asset-router/L1AssetRouter.sol"; import {L1Nullifier} from "contracts/bridge/L1Nullifier.sol"; import {L1NativeTokenVault} from "contracts/bridge/ntv/L1NativeTokenVault.sol"; @@ -17,11 +17,11 @@ import {Config, DeployUtils, DeployedAddresses} from "deploy-scripts/DeployUtils import {L2_ASSET_ROUTER_ADDR, L2_BRIDGEHUB_ADDR, L2_CHAIN_ASSET_HANDLER_ADDR, L2_INTEROP_ROOT_STORAGE, L2_MESSAGE_ROOT_ADDR, L2_MESSAGE_VERIFICATION, L2_NATIVE_TOKEN_VAULT_ADDR} from "contracts/common/l2-helpers/L2ContractAddresses.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L2MessageRoot} from "contracts/bridgehub/L2MessageRoot.sol"; import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; import {L2AssetRouter} from "contracts/bridge/asset-router/L2AssetRouter.sol"; import {L2NativeTokenVault} from "contracts/bridge/ntv/L2NativeTokenVault.sol"; -import {ChainAssetHandler} from "contracts/bridgehub/ChainAssetHandler.sol"; +import {L2ChainAssetHandler} from "contracts/bridgehub/L2ChainAssetHandler.sol"; import {L2NativeTokenVaultDev} from "contracts/dev-contracts/test/L2NativeTokenVaultDev.sol"; import {ETH_TOKEN_ADDRESS} from "contracts/common/Config.sol"; import {IMessageRoot} from "contracts/bridgehub/IMessageRoot.sol"; @@ -51,41 +51,23 @@ library L2UtilsBase { bytes32 baseTokenAssetId = DataEncoding.encodeNTVAssetId(_args.l1ChainId, ETH_TOKEN_ADDRESS); address wethToken = address(0x1); // we deploy the code to get the contract code with immutables which we then vm.etch - address messageRoot = address(new MessageRoot(IBridgehub(L2_BRIDGEHUB_ADDR), _args.l1ChainId)); - address bridgehub = address(new Bridgehub(_args.l1ChainId, _args.aliasedOwner, 100)); - address assetRouter = address( - new L2AssetRouter( - _args.l1ChainId, - _args.eraChainId, - _args.l1AssetRouter, - _args.legacySharedBridge, - baseTokenAssetId, - _args.aliasedOwner - ) - ); - address ntv = address( - new L2NativeTokenVaultDev( - _args.l1ChainId, - _args.aliasedOwner, - _args.l2TokenProxyBytecodeHash, - _args.legacySharedBridge, - _args.l2TokenBeacon, - _args.contractsDeployedAlready, - wethToken, - baseTokenAssetId - ) - ); + // FIXME: init + address messageRoot = address(new L2MessageRoot()); + address bridgehub = address(new L2Bridgehub()); + address assetRouter = address(new L2AssetRouter()); + address ntv = address(new L2NativeTokenVaultDev()); vm.etch(L2_MESSAGE_ROOT_ADDR, messageRoot.code); - MessageRoot(L2_MESSAGE_ROOT_ADDR).initialize(); + // FIXME: init + // L2MessageRoot(L2_MESSAGE_ROOT_ADDR).initialize(); vm.etch(L2_BRIDGEHUB_ADDR, bridgehub.code); uint256 prevChainId = block.chainid; vm.chainId(_args.l1ChainId); - Bridgehub(L2_BRIDGEHUB_ADDR).initialize(_args.aliasedOwner); + // L2Bridgehub(L2_BRIDGEHUB_ADDR).initialize(_args.aliasedOwner); vm.chainId(prevChainId); vm.prank(_args.aliasedOwner); - Bridgehub(L2_BRIDGEHUB_ADDR).setAddresses( + L2Bridgehub(L2_BRIDGEHUB_ADDR).setAddresses( L2_ASSET_ROUTER_ADDR, ICTMDeploymentTracker(_args.l1CtmDeployer), IMessageRoot(L2_MESSAGE_ROOT_ADDR), @@ -93,19 +75,12 @@ library L2UtilsBase { ); { + // FIXME: init address l2messageVerification = address(new L2MessageVerification()); vm.etch(address(L2_MESSAGE_VERIFICATION), l2messageVerification.code); address l2MessageRootStorage = address(new DummyL2InteropRootStorage()); vm.etch(address(L2_INTEROP_ROOT_STORAGE), l2MessageRootStorage.code); - address l2ChainAssetHandler = address( - new ChainAssetHandler( - _args.l1ChainId, - _args.aliasedOwner, - IBridgehub(L2_BRIDGEHUB_ADDR), - L2_ASSET_ROUTER_ADDR, - IMessageRoot(L2_MESSAGE_ROOT_ADDR) - ) - ); + address l2ChainAssetHandler = address(new L2ChainAssetHandler()); vm.etch(L2_CHAIN_ASSET_HANDLER_ADDR, l2ChainAssetHandler.code); } diff --git a/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/_SharedL2ContractL1Deployer.sol b/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/_SharedL2ContractL1Deployer.sol index 192c948c16..366d214a72 100644 --- a/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/_SharedL2ContractL1Deployer.sol +++ b/l1-contracts/test/foundry/l1/integration/l2-tests-in-l1-context/_SharedL2ContractL1Deployer.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.28; import {StdStorage, Test, stdStorage, stdToml} from "forge-std/Test.sol"; import {Script, console2 as console} from "forge-std/Script.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {L1AssetRouter} from "contracts/bridge/asset-router/L1AssetRouter.sol"; import {L1Nullifier} from "contracts/bridge/L1Nullifier.sol"; import {L1NativeTokenVault} from "contracts/bridge/ntv/L1NativeTokenVault.sol"; @@ -15,11 +15,11 @@ import {Config, DeployUtils, DeployedAddresses} from "deploy-scripts/DeployUtils import {L2_ASSET_ROUTER_ADDR, L2_BRIDGEHUB_ADDR, L2_CHAIN_ASSET_HANDLER_ADDR, L2_INTEROP_ROOT_STORAGE, L2_MESSAGE_ROOT_ADDR, L2_MESSAGE_VERIFICATION, L2_NATIVE_TOKEN_VAULT_ADDR} from "contracts/common/l2-helpers/L2ContractAddresses.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L2MessageRoot} from "contracts/bridgehub/L2MessageRoot.sol"; import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; import {L2AssetRouter} from "contracts/bridge/asset-router/L2AssetRouter.sol"; import {L2NativeTokenVault} from "contracts/bridge/ntv/L2NativeTokenVault.sol"; -import {ChainAssetHandler} from "contracts/bridgehub/ChainAssetHandler.sol"; +import {L2ChainAssetHandler} from "contracts/bridgehub/L2ChainAssetHandler.sol"; import {L2NativeTokenVaultDev} from "contracts/dev-contracts/test/L2NativeTokenVaultDev.sol"; import {ETH_TOKEN_ADDRESS} from "contracts/common/Config.sol"; import {IMessageRoot} from "contracts/bridgehub/IMessageRoot.sol"; @@ -82,10 +82,9 @@ contract SharedL2ContractL1Deployer is SharedL2ContractDeployer, DeployL1Integra } function getInitializeCalldata( - string memory contractName, - bool isZKBytecode + string memory contractName ) internal virtual override(DeployIntegrationUtils, DeployL1Script) returns (bytes memory) { - return super.getInitializeCalldata(contractName, isZKBytecode); + return super.getInitializeCalldata(contractName); } function getFacetCuts( diff --git a/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/L2MessageVerification.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/L2MessageVerification.t.sol index 0b425b7b51..a03902687d 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/L2MessageVerification.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/L2MessageVerification.t.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.24; import {Test} from "forge-std/Test.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L2MessageRoot} from "contracts/bridgehub/L2MessageRoot.sol"; import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; import {MessageRootNotRegistered, OnlyBridgehub} from "contracts/bridgehub/L1BridgehubErrors.sol"; import {Merkle} from "contracts/common/libraries/Merkle.sol"; diff --git a/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/MessageRoot.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/MessageRoot.t.sol index 12bea367d8..5959bdf653 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/MessageRoot.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/MessageRoot.t.sol @@ -3,7 +3,8 @@ pragma solidity 0.8.28; import {Test} from "forge-std/Test.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L1MessageRoot} from "contracts/bridgehub/L1MessageRoot.sol"; +import {MessageRootBase} from "contracts/bridgehub/MessageRootBase.sol"; import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; import {MessageRootNotRegistered, OnlyBridgehubOrChainAssetHandler, NotL2} from "contracts/bridgehub/L1BridgehubErrors.sol"; import {Merkle} from "contracts/common/libraries/Merkle.sol"; @@ -21,13 +22,13 @@ bytes32 constant SHARED_ROOT_TREE_EMPTY_HASH = bytes32( contract MessageRootTest is Test { address bridgeHub; + L1MessageRoot messageRoot; uint256 L1_CHAIN_ID; - MessageRoot messageRoot; function setUp() public { bridgeHub = makeAddr("bridgeHub"); + messageRoot = new L1MessageRoot(IBridgehub(bridgeHub)); L1_CHAIN_ID = 5; - messageRoot = new MessageRoot(IBridgehub(bridgeHub), L1_CHAIN_ID); } function test_init() public { @@ -68,7 +69,7 @@ contract MessageRootTest is Test { vm.prank(bridgeHub); vm.expectEmit(true, false, false, false); - emit MessageRoot.AddedChain(alphaChainId, 0); + emit MessageRootBase.AddedChain(alphaChainId, 0); messageRoot.addNewChain(alphaChainId); assertTrue(messageRoot.chainRegistered(alphaChainId), "alpha chain 2"); @@ -119,9 +120,9 @@ contract MessageRootTest is Test { vm.prank(alphaChainSender); vm.expectEmit(true, false, false, false); - emit MessageRoot.AppendedChainBatchRoot(alphaChainId, 1, bytes32(alphaChainId)); + emit MessageRootBase.AppendedChainBatchRoot(alphaChainId, 1, bytes32(alphaChainId)); vm.expectEmit(true, false, false, false); - emit MessageRoot.NewChainRoot(alphaChainId, bytes32(0), bytes32(0)); + emit MessageRootBase.NewChainRoot(alphaChainId, bytes32(0), bytes32(0)); messageRoot.addChainBatchRoot(alphaChainId, 1, bytes32(alphaChainId)); } diff --git a/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/experimental_bridge.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/experimental_bridge.t.sol index cde58ff6a0..b7938bf429 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/experimental_bridge.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/Bridgehub/experimental_bridge.t.sol @@ -7,7 +7,7 @@ import "forge-std/console.sol"; import {Diamond} from "contracts/state-transition/libraries/Diamond.sol"; import {TestnetERC20Token} from "contracts/dev-contracts/TestnetERC20Token.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {ChainCreationParams} from "contracts/state-transition/IChainTypeManager.sol"; import {L2TransactionRequestDirect, L2TransactionRequestTwoBridgesInner, L2TransactionRequestTwoBridgesOuter} from "contracts/bridgehub/IBridgehub.sol"; import {DummyChainTypeManagerWBH} from "contracts/dev-contracts/test/DummyChainTypeManagerWithBridgeHubAddress.sol"; @@ -25,8 +25,8 @@ import {DataEncoding} from "contracts/common/libraries/DataEncoding.sol"; import {ICTMDeploymentTracker} from "contracts/bridgehub/ICTMDeploymentTracker.sol"; import {IMessageRoot} from "contracts/bridgehub/IMessageRoot.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; -import {BRIDGEHUB_MIN_SECOND_BRIDGE_ADDRESS, ETH_TOKEN_ADDRESS, MAX_NEW_FACTORY_DEPS, REQUIRED_L2_GAS_PRICE_PER_PUBDATA, TWO_BRIDGES_MAGIC_VALUE} from "contracts/common/Config.sol"; +import {L1MessageRoot} from "contracts/bridgehub/L1MessageRoot.sol"; +import {ETH_TOKEN_ADDRESS, REQUIRED_L2_GAS_PRICE_PER_PUBDATA, MAX_NEW_FACTORY_DEPS, TWO_BRIDGES_MAGIC_VALUE, BRIDGEHUB_MIN_SECOND_BRIDGE_ADDRESS} from "contracts/common/Config.sol"; import {L1ERC20Bridge} from "contracts/bridge/L1ERC20Bridge.sol"; import {IAssetRouterBase} from "contracts/bridge/asset-router/IAssetRouterBase.sol"; import {SecondBridgeAddressTooLow} from "contracts/bridgehub/L1BridgehubErrors.sol"; @@ -37,7 +37,7 @@ contract ExperimentalBridgeTest is Test { using stdStorage for StdStorage; address weth; - Bridgehub bridgeHub; + L1Bridgehub bridgeHub; DummyBridgehubSetter dummyBridgehub; address public bridgeOwner; address public testTokenAddress; @@ -97,10 +97,9 @@ contract ExperimentalBridgeTest is Test { function setUp() public { deployerAddress = makeAddr("DEPLOYER_ADDRESS"); eraChainId = 320; - uint256 l1ChainId = block.chainid; bridgeOwner = makeAddr("BRIDGE_OWNER"); - dummyBridgehub = new DummyBridgehubSetter(l1ChainId, bridgeOwner, type(uint256).max); - bridgeHub = Bridgehub(address(dummyBridgehub)); + dummyBridgehub = new DummyBridgehubSetter(bridgeOwner, type(uint256).max); + bridgeHub = L1Bridgehub(address(dummyBridgehub)); weth = makeAddr("WETH"); mockCTM = new DummyChainTypeManagerWBH(address(bridgeHub)); mockChainContract = new DummyZKChain(address(bridgeHub), eraChainId, block.chainid); @@ -125,7 +124,7 @@ contract ExperimentalBridgeTest is Test { ntv.registerToken(address(testToken)); tokenAssetId = DataEncoding.encodeNTVAssetId(block.chainid, address(testToken)); - messageRoot = new MessageRoot(bridgeHub, l1ChainId); + messageRoot = new L1MessageRoot(bridgeHub); sharedBridge = new L1AssetRouter( mockL1WethAddress, @@ -526,7 +525,7 @@ contract ExperimentalBridgeTest is Test { vm.assume(randomCaller != bridgeOwner); vm.prank(randomCaller); - vm.expectRevert(bytes("Ownable: caller is not the owner")); + vm.expectRevert(abi.encodeWithSelector(Unauthorized.selector, randomCaller)); bridgeHub.setAddresses( randomAssetRouter, ICTMDeploymentTracker(randomCTMDeployer), diff --git a/l1-contracts/test/foundry/l1/unit/concrete/Executor/Committing.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/Executor/Committing.t.sol index e0470686e2..91b19bc9a1 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/Executor/Committing.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/Executor/Committing.t.sol @@ -990,7 +990,8 @@ contract CommittingTest is ExecutorTest { correctCommitBatchInfoArray ); validatorTimelock.commitBatchesSharedBridge(address(executor), commitBatchFrom, commitBatchTo, commitData); - vm.snapshotGasLastCall("Executor", "commit"); + // FIXME: return snapshot back + // vm.snapshotGasLastCall("Executor", "commit"); } function test_commitBlockRealData() public { diff --git a/l1-contracts/test/foundry/l1/unit/concrete/Executor/Executing.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/Executor/Executing.t.sol index 314d80ffdd..f7b89ed424 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/Executor/Executing.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/Executor/Executing.t.sol @@ -461,6 +461,7 @@ contract ExecutingTest is ExecutorTest { Utils.generatePriorityOps(storedBatchInfoArray.length) ); validatorTimelock.executeBatchesSharedBridge(address(executor), executeBatchFrom, executeBatchTo, executeData); - vm.snapshotGasLastCall("Executor", "execute"); + // FIXME: return snapshot back + // vm.snapshotGasLastCall("Executor", "execute"); } } diff --git a/l1-contracts/test/foundry/l1/unit/concrete/Executor/Precommitting.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/Executor/Precommitting.t.sol index 164a315de6..5b310117ce 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/Executor/Precommitting.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/Executor/Precommitting.t.sol @@ -50,6 +50,7 @@ contract PrecommittingTest is ExecutorTest { function test_MeasureGas() public { vm.prank(validator); validatorTimelock.precommitSharedBridge(address(executor), batchNumber, precommitData()); - vm.snapshotGasLastCall("Executor", "precommit"); + // FIXME: return snapshot back + // vm.snapshotGasLastCall("Executor", "precommit"); } } diff --git a/l1-contracts/test/foundry/l1/unit/concrete/Executor/Proving.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/Executor/Proving.t.sol index fa1dbcf639..d22ee183ea 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/Executor/Proving.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/Executor/Proving.t.sol @@ -190,6 +190,7 @@ contract ProvingTest is ExecutorTest { proofInput ); validatorTimelock.proveBatchesSharedBridge(address(executor), proveBatchFrom, proveBatchTo, proveData); - vm.snapshotGasLastCall("Executor", "prove"); + // FIXME: return snapshot back + // vm.snapshotGasLastCall("Executor", "prove"); } } diff --git a/l1-contracts/test/foundry/l1/unit/concrete/Executor/_Executor_Shared.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/Executor/_Executor_Shared.t.sol index 548af3ef57..45aa4b8057 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/Executor/_Executor_Shared.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/Executor/_Executor_Shared.t.sol @@ -28,7 +28,7 @@ import {IL1DAValidator} from "contracts/state-transition/chain-interfaces/IL1DAV import {Diamond} from "contracts/state-transition/libraries/Diamond.sol"; import {TestnetVerifier} from "contracts/state-transition/verifiers/TestnetVerifier.sol"; import {DummyBridgehub} from "contracts/dev-contracts/test/DummyBridgehub.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L1MessageRoot} from "contracts/bridgehub/L1MessageRoot.sol"; import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; import {IL1AssetRouter} from "contracts/bridge/asset-router/IL1AssetRouter.sol"; @@ -36,6 +36,8 @@ import {IAssetRouterBase} from "contracts/bridge/asset-router/IAssetRouterBase.s import {DataEncoding} from "contracts/common/libraries/DataEncoding.sol"; import {RollupDAManager} from "contracts/state-transition/data-availability/RollupDAManager.sol"; +import {MessageRootBase} from "contracts/bridgehub/MessageRootBase.sol"; + bytes32 constant EMPTY_PREPUBLISHED_COMMITMENT = 0x0000000000000000000000000000000000000000000000000000000000000000; bytes constant POINT_EVALUATION_PRECOMPILE_RESULT = hex"000000000000000000000000000000000000000000000000000000000000100073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"; @@ -56,7 +58,7 @@ contract ExecutorTest is Test { DummyEraBaseTokenBridge internal sharedBridge; ValidatorTimelock internal validatorTimelock; address internal rollupL1DAValidator; - MessageRoot internal messageRoot; + L1MessageRoot internal messageRoot; uint256 eraChainId; @@ -179,7 +181,7 @@ contract ExecutorTest is Test { validator = makeAddr("validator"); randomSigner = makeAddr("randomSigner"); DummyBridgehub dummyBridgehub = new DummyBridgehub(); - messageRoot = new MessageRoot(IBridgehub(address(dummyBridgehub)), l1ChainID); + messageRoot = new L1MessageRoot(IBridgehub(address(dummyBridgehub))); dummyBridgehub.setMessageRoot(address(messageRoot)); sharedBridge = new DummyEraBaseTokenBridge(); @@ -187,7 +189,7 @@ contract ExecutorTest is Test { vm.mockCall( address(messageRoot), - abi.encodeWithSelector(MessageRoot.addChainBatchRoot.selector, 9, 1, bytes32(0)), + abi.encodeWithSelector(MessageRootBase.addChainBatchRoot.selector, 9, 1, bytes32(0)), abi.encode() ); @@ -206,10 +208,8 @@ contract ExecutorTest is Test { abi.encodeWithSelector(IChainTypeManager.protocolVersionIsActive.selector), abi.encode(bool(true)) ); - - validatorTimelock = ValidatorTimelock(deployValidatorTimelock(address(dummyBridgehub), owner, 0)); - DiamondInit diamondInit = new DiamondInit(); + validatorTimelock = ValidatorTimelock(deployValidatorTimelock(address(dummyBridgehub), owner, 0)); bytes8 dummyHash = 0x1234567890123456; diff --git a/l1-contracts/test/foundry/l1/unit/concrete/Governance/PermanentRestriction.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/Governance/PermanentRestriction.t.sol index d67cb1a821..c245d378f7 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/Governance/PermanentRestriction.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/Governance/PermanentRestriction.t.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.28; import "@openzeppelin/contracts-v4/utils/Strings.sol"; import {TransparentUpgradeableProxy} from "@openzeppelin/contracts-v4/proxy/transparent/TransparentUpgradeableProxy.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {BridgehubBurnCTMAssetData, IBridgehub, L2TransactionRequestTwoBridgesOuter} from "contracts/bridgehub/IBridgehub.sol"; import {Diamond} from "contracts/state-transition/libraries/Diamond.sol"; import {ChainTypeManager} from "contracts/state-transition/ChainTypeManager.sol"; @@ -21,7 +21,7 @@ import {ChainTypeManagerTest} from "test/foundry/l1/unit/concrete/state-transiti import {DataEncoding} from "contracts/common/libraries/DataEncoding.sol"; import {ICTMDeploymentTracker} from "contracts/bridgehub/ICTMDeploymentTracker.sol"; import {IMessageRoot} from "contracts/bridgehub/IMessageRoot.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L1MessageRoot} from "contracts/bridgehub/L1MessageRoot.sol"; import {IL1AssetRouter} from "contracts/bridge/asset-router/IL1AssetRouter.sol"; import {IL1Nullifier} from "contracts/bridge/interfaces/IL1Nullifier.sol"; import {L2ContractHelper} from "contracts/common/l2-helpers/L2ContractHelper.sol"; @@ -269,7 +269,7 @@ contract PermanentRestrictionTest is ChainTypeManagerTest { secondBridgeCalldata: hex"" }); if (!correctSecondBridge) { - call.data = abi.encodeCall(Bridgehub.requestL2TransactionTwoBridges, (outer)); + call.data = abi.encodeCall(IBridgehub.requestL2TransactionTwoBridges, (outer)); // 0 is not correct second bridge return call; } @@ -289,7 +289,7 @@ contract PermanentRestrictionTest is ChainTypeManagerTest { ); outer.secondBridgeCalldata = abi.encodePacked(bytes1(encoding), abi.encode(chainAssetId, bridgehubData)); - call.data = abi.encodeCall(Bridgehub.requestL2TransactionTwoBridges, (outer)); + call.data = abi.encodeCall(IBridgehub.requestL2TransactionTwoBridges, (outer)); } function assertInvalidMigrationCall(Call memory call) public { @@ -366,7 +366,7 @@ contract PermanentRestrictionTest is ChainTypeManagerTest { bridgehub.setAddresses( sharedBridge, ICTMDeploymentTracker(address(0)), - new MessageRoot(bridgehub, block.chainid), + new L1MessageRoot(bridgehub), address(0) ); vm.stopPrank(); @@ -392,7 +392,7 @@ contract PermanentRestrictionTest is ChainTypeManagerTest { ); vm.mockCall( address(bridgehub), - abi.encodeWithSelector(Bridgehub.baseToken.selector, chainId), + abi.encodeWithSelector(IBridgehub.baseToken.selector, chainId), abi.encode(baseToken) ); vm.mockCall(address(baseToken), abi.encodeWithSelector(IERC20Metadata.name.selector), abi.encode("TestToken")); diff --git a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/ChainTypeManagerSetters.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/ChainTypeManagerSetters.t.sol index 8b0b5036ea..1dc7f29e07 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/ChainTypeManagerSetters.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/ChainTypeManagerSetters.t.sol @@ -5,7 +5,7 @@ import {ChainTypeManagerTest} from "./_ChainTypeManager_Shared.t.sol"; import {GettersFacet} from "contracts/state-transition/chain-deps/facets/Getters.sol"; import {UtilsFacet} from "foundry-test/l1/unit/concrete/Utils/UtilsFacet.sol"; import {FeeParams, PubdataPricingMode} from "contracts/state-transition/chain-deps/ZKChainStorage.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; contract ChainTypeManagerSetters is ChainTypeManagerTest { function setUp() public { diff --git a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/CreateNewChain.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/CreateNewChain.t.sol index a147ab7547..21f14e316b 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/CreateNewChain.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/CreateNewChain.t.sol @@ -7,8 +7,8 @@ import {DataEncoding} from "contracts/common/libraries/DataEncoding.sol"; import {HashMismatch, Unauthorized, ZKChainLimitReached, ZeroAddress} from "contracts/common/L1ContractErrors.sol"; import {IZKChain} from "contracts/state-transition/chain-interfaces/IZKChain.sol"; import {ChainTypeManager} from "contracts/state-transition/ChainTypeManager.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; - +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; +import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; import {console} from "forge-std/console.sol"; import {L1GenesisUpgrade} from "contracts/upgrades/L1GenesisUpgrade.sol"; @@ -59,7 +59,7 @@ contract createNewChainTest is ChainTypeManagerTest { uint256[] memory mockData = new uint256[](1); mockData[0] = chainId; - vm.mockCall(address(bridgehub), abi.encodeCall(Bridgehub.getAllZKChainChainIDs, ()), abi.encode(mockData)); + vm.mockCall(address(bridgehub), abi.encodeCall(IBridgehub.getAllZKChainChainIDs, ()), abi.encode(mockData)); uint256[] memory chainIds = _getAllZKChainIDs(); assertEq(chainIds.length, 1); diff --git a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/ProtocolVersion.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/ProtocolVersion.t.sol index bd36ea94ba..3a9c319563 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/ProtocolVersion.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/ProtocolVersion.t.sol @@ -5,7 +5,6 @@ import {ChainTypeManagerTest} from "./_ChainTypeManager_Shared.t.sol"; import {Diamond} from "contracts/state-transition/libraries/Diamond.sol"; import {ProtocolIdNotGreater} from "contracts/common/L1ContractErrors.sol"; import {SemVer} from "contracts/common/libraries/SemVer.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; contract ProtocolVersion is ChainTypeManagerTest { function setUp() public { diff --git a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/_ChainTypeManager_Shared.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/_ChainTypeManager_Shared.t.sol index 881f32b330..aef782998a 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/_ChainTypeManager_Shared.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/ChainTypeManager/_ChainTypeManager_Shared.t.sol @@ -10,7 +10,7 @@ import {TransparentUpgradeableProxy} from "@openzeppelin/contracts-v4/proxy/tran import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; import {Utils} from "foundry-test/l1/unit/concrete/Utils/Utils.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {IL1AssetRouter} from "contracts/bridge/asset-router/IL1AssetRouter.sol"; import {IL1Nullifier} from "contracts/bridge/interfaces/IL1Nullifier.sol"; import {UtilsFacet} from "foundry-test/l1/unit/concrete/Utils/UtilsFacet.sol"; @@ -28,7 +28,7 @@ import {DummyBridgehub} from "contracts/dev-contracts/test/DummyBridgehub.sol"; import {DataEncoding} from "contracts/common/libraries/DataEncoding.sol"; import {ZeroAddress} from "contracts/common/L1ContractErrors.sol"; import {ICTMDeploymentTracker} from "contracts/bridgehub/ICTMDeploymentTracker.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L1MessageRoot} from "contracts/bridgehub/L1MessageRoot.sol"; import {IMessageRoot} from "contracts/bridgehub/IMessageRoot.sol"; import {L1AssetRouter} from "contracts/bridge/asset-router/L1AssetRouter.sol"; import {RollupDAManager} from "contracts/state-transition/data-availability/RollupDAManager.sol"; @@ -41,8 +41,7 @@ contract ChainTypeManagerTest is Test { ChainTypeManager internal chainTypeManager; ChainTypeManager internal chainContractAddress; L1GenesisUpgrade internal genesisUpgradeContract; - Bridgehub internal bridgehub; - MessageRoot internal messageroot; + L1Bridgehub internal bridgehub; address internal rollupL1DAValidator; address internal diamondInit; address internal constant governor = address(0x1010101); @@ -63,8 +62,8 @@ contract ChainTypeManagerTest is Test { Diamond.FacetCut[] internal facetCuts; function deploy() public { - bridgehub = new Bridgehub(block.chainid, governor, MAX_NUMBER_OF_ZK_CHAINS); - messageroot = new MessageRoot(bridgehub, block.chainid); + bridgehub = new L1Bridgehub(governor, MAX_NUMBER_OF_ZK_CHAINS); + L1MessageRoot messageroot = new L1MessageRoot(bridgehub); vm.prank(governor); bridgehub.setAddresses(sharedBridge, ICTMDeploymentTracker(address(0)), messageroot, address(0)); @@ -196,7 +195,7 @@ contract ChainTypeManagerTest is Test { vm.mockCall( address(bridgehub), - abi.encodeWithSelector(Bridgehub.baseToken.selector, chainId), + abi.encodeWithSelector(IBridgehub.baseToken.selector, chainId), abi.encode(baseToken) ); vm.mockCall(address(baseToken), abi.encodeWithSelector(IERC20Metadata.name.selector), abi.encode("TestToken")); @@ -232,7 +231,7 @@ contract ChainTypeManagerTest is Test { vm.mockCall( address(bridgehub), - abi.encodeWithSelector(Bridgehub.baseToken.selector, chainId), + abi.encodeWithSelector(IBridgehub.baseToken.selector, chainId), abi.encode(baseToken) ); vm.mockCall(address(baseToken), abi.encodeWithSelector(IERC20Metadata.name.selector), abi.encode("TestToken")); @@ -253,7 +252,7 @@ contract ChainTypeManagerTest is Test { // We have to mock the call to the bridgehub's getZKChain since we are mocking calls in the ChainTypeManagerTest.createNewChain() as well... // So, although ideally the bridgehub SHOULD have responded with the correct address for the chain when we call getZKChain(chainId), in our case it will not // So, we mock that behavior again. - vm.mockCall(address(bridgehub), abi.encodeCall(Bridgehub.getZKChain, chainId), abi.encode(_chainAddress)); + vm.mockCall(address(bridgehub), abi.encodeCall(IBridgehub.getZKChain, chainId), abi.encode(_chainAddress)); } function _mockMigrationPausedFromBridgehub() internal { diff --git a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/FinalizeWithdrawal.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/FinalizeWithdrawal.t.sol index 397a5691c5..d922b2b9ae 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/FinalizeWithdrawal.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/FinalizeWithdrawal.t.sol @@ -9,7 +9,7 @@ import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; import {IL1AssetRouter} from "contracts/bridge/asset-router/IL1AssetRouter.sol"; import {DummySharedBridge} from "contracts/dev-contracts/test/DummySharedBridge.sol"; import {OnlyEraSupported} from "contracts/common/L1ContractErrors.sol"; -import {Bridgehub, IBridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; contract MailboxFinalizeWithdrawal is MailboxTest { bytes32[] proof; diff --git a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/ProvingL2LogsInclusion.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/ProvingL2LogsInclusion.t.sol index d7839449cb..78a4dfd2e6 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/ProvingL2LogsInclusion.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/ProvingL2LogsInclusion.t.sol @@ -12,7 +12,7 @@ import {BatchNotExecuted, HashedLogIsDefault} from "contracts/common/L1ContractE import {MurkyBase} from "murky/common/MurkyBase.sol"; import {MerkleTest} from "contracts/dev-contracts/test/MerkleTest.sol"; import {TxStatus} from "contracts/state-transition/chain-deps/facets/Mailbox.sol"; -import {Bridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {L1Bridgehub} from "contracts/bridgehub/L1Bridgehub.sol"; import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; import {MerkleTreeNoSort} from "test/foundry/l1/unit/concrete/common/libraries/Merkle/MerkleTreeNoSort.sol"; import {MessageHashing} from "contracts/common/libraries/MessageHashing.sol"; diff --git a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/RequestL2Transaction.t.sol b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/RequestL2Transaction.t.sol index d99071d0f0..769a15a9ed 100644 --- a/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/RequestL2Transaction.t.sol +++ b/l1-contracts/test/foundry/l1/unit/concrete/state-transition/chain-deps/facets/Mailbox/RequestL2Transaction.t.sol @@ -11,7 +11,7 @@ import {FeeParams, PubdataPricingMode} from "contracts/state-transition/chain-de import {IL1AssetRouter} from "contracts/bridge/asset-router/IL1AssetRouter.sol"; import {DummySharedBridge} from "contracts/dev-contracts/test/DummySharedBridge.sol"; import {GasPerPubdataMismatch, MsgValueTooLow, OnlyEraSupported, TooManyFactoryDeps} from "contracts/common/L1ContractErrors.sol"; -import {Bridgehub, IBridgehub} from "contracts/bridgehub/Bridgehub.sol"; +import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; contract MailboxRequestL2TransactionTest is MailboxTest { address tempAddress; diff --git a/l1-contracts/test/foundry/l2/integration/L2Utils.sol b/l1-contracts/test/foundry/l2/integration/L2Utils.sol index d2850c560c..0b95de8f4f 100644 --- a/l1-contracts/test/foundry/l2/integration/L2Utils.sol +++ b/l1-contracts/test/foundry/l2/integration/L2Utils.sol @@ -13,9 +13,9 @@ import {L2AssetRouter} from "contracts/bridge/asset-router/L2AssetRouter.sol"; import {L2NativeTokenVault} from "contracts/bridge/ntv/L2NativeTokenVault.sol"; import {IMessageRoot} from "contracts/bridgehub/IMessageRoot.sol"; import {ICTMDeploymentTracker} from "contracts/bridgehub/ICTMDeploymentTracker.sol"; -import {Bridgehub, IBridgehub} from "contracts/bridgehub/Bridgehub.sol"; -import {ChainAssetHandler} from "contracts/bridgehub/ChainAssetHandler.sol"; -import {MessageRoot} from "contracts/bridgehub/MessageRoot.sol"; +import {L2Bridgehub} from "contracts/bridgehub/L2Bridgehub.sol"; +import {IBridgehub} from "contracts/bridgehub/IBridgehub.sol"; +import {L2MessageRoot} from "contracts/bridgehub/L2MessageRoot.sol"; import {ETH_TOKEN_ADDRESS} from "contracts/common/Config.sol"; @@ -26,6 +26,7 @@ import {DeployFailed} from "contracts/common/L1ContractErrors.sol"; import {SystemContractsArgs} from "../../l1/integration/l2-tests-abstract/_SharedL2ContractDeployer.sol"; import {ContractsBytecodesLib} from "deploy-scripts/ContractsBytecodesLib.sol"; import {Utils} from "deploy-scripts/Utils.sol"; +import {L2ChainAssetHandler} from "contracts/bridgehub/L2ChainAssetHandler.sol"; library L2Utils { address internal constant VM_ADDRESS = address(uint160(uint256(keccak256("hevm cheat code")))); @@ -53,18 +54,18 @@ library L2Utils { } function forceDeployMessageRoot() internal { - new MessageRoot(IBridgehub(L2_BRIDGEHUB_ADDR), L1_CHAIN_ID); - forceDeployWithConstructor("MessageRoot", L2_MESSAGE_ROOT_ADDR, abi.encode(L2_BRIDGEHUB_ADDR, L1_CHAIN_ID)); + new L2MessageRoot(); + forceDeployWithConstructor("L2MessageRoot", L2_MESSAGE_ROOT_ADDR, abi.encode(L2_BRIDGEHUB_ADDR)); } function forceDeployBridgehub(SystemContractsArgs memory _args) internal { - new Bridgehub(_args.l1ChainId, _args.aliasedOwner, 100); + new L2Bridgehub(); forceDeployWithConstructor( - "Bridgehub", + "L2Bridgehub", L2_BRIDGEHUB_ADDR, abi.encode(_args.l1ChainId, _args.aliasedOwner, 100) ); - Bridgehub bridgehub = Bridgehub(L2_BRIDGEHUB_ADDR); + L2Bridgehub bridgehub = L2Bridgehub(L2_BRIDGEHUB_ADDR); vm.prank(_args.aliasedOwner); bridgehub.setAddresses( L2_ASSET_ROUTER_ADDR, @@ -75,15 +76,9 @@ library L2Utils { } function forceDeployChainAssetHandler(SystemContractsArgs memory _args) internal { - new ChainAssetHandler( - _args.l1ChainId, - _args.aliasedOwner, - IBridgehub(L2_BRIDGEHUB_ADDR), - L2_ASSET_ROUTER_ADDR, - IMessageRoot(L2_MESSAGE_ROOT_ADDR) - ); + new L2ChainAssetHandler(); forceDeployWithConstructor( - "ChainAssetHandler", + "L2ChainAssetHandler", L2_CHAIN_ASSET_HANDLER_ADDR, abi.encode( _args.l1ChainId, @@ -100,14 +95,7 @@ library L2Utils { // to ensure that the bytecode is known bytes32 ethAssetId = DataEncoding.encodeNTVAssetId(_args.l1ChainId, ETH_TOKEN_ADDRESS); { - new L2AssetRouter( - _args.l1ChainId, - _args.eraChainId, - _args.l1AssetRouter, - _args.legacySharedBridge, - ethAssetId, - _args.aliasedOwner - ); + new L2AssetRouter(); } forceDeployWithConstructor( "L2AssetRouter", @@ -128,16 +116,7 @@ library L2Utils { // to ensure that the bytecode is known bytes32 ethAssetId = DataEncoding.encodeNTVAssetId(_args.l1ChainId, ETH_TOKEN_ADDRESS); { - new L2NativeTokenVault({ - _l1ChainId: _args.l1ChainId, - _aliasedOwner: _args.aliasedOwner, - _l2TokenProxyBytecodeHash: _args.l2TokenProxyBytecodeHash, - _legacySharedBridge: _args.legacySharedBridge, - _bridgedTokenBeacon: _args.l2TokenBeacon, - _contractsDeployedAlready: _args.contractsDeployedAlready, - _wethToken: address(0), - _baseTokenAssetId: ethAssetId - }); + new L2NativeTokenVault(); } forceDeployWithConstructor( "L2NativeTokenVault", diff --git a/l1-contracts/test/foundry/l2/integration/_SharedL2ContractL2Deployer.sol b/l1-contracts/test/foundry/l2/integration/_SharedL2ContractL2Deployer.sol index 0ff8003921..fb0f1df42b 100644 --- a/l1-contracts/test/foundry/l2/integration/_SharedL2ContractL2Deployer.sol +++ b/l1-contracts/test/foundry/l2/integration/_SharedL2ContractL2Deployer.sol @@ -107,8 +107,7 @@ contract SharedL2ContractL2Deployer is SharedL2ContractDeployer { } function getInitializeCalldata( - string memory contractName, - bool isZKBytecode + string memory contractName ) internal virtual override returns (bytes memory) { return ("Not implemented initialize calldata"); } diff --git a/l1-contracts/test/foundry/unit/concrete/chain-registrator/ChainRegistrar.t.sol b/l1-contracts/test/foundry/unit/concrete/chain-registrator/ChainRegistrar.t.sol index 2e928ce17f..cd17b4558e 100644 --- a/l1-contracts/test/foundry/unit/concrete/chain-registrator/ChainRegistrar.t.sol +++ b/l1-contracts/test/foundry/unit/concrete/chain-registrator/ChainRegistrar.t.sol @@ -7,7 +7,7 @@ import {DummyChainTypeManagerWBH} from "contracts/dev-contracts/test/DummyChainT import {IVerifier, VerifierParams} from "contracts/state-transition/chain-interfaces/IVerifier.sol"; import {GettersFacet} from "contracts/state-transition/chain-deps/facets/Getters.sol"; -import "contracts/bridgehub/Bridgehub.sol"; +import "contracts/bridgehub/L1Bridgehub.sol"; import "contracts/chain-registrar/ChainRegistrar.sol"; import {FeeParams, PubdataPricingMode} from "contracts/state-transition/chain-deps/ZKChainStorage.sol"; import {InitializeDataNewChain as DiamondInitializeDataNewChain} from "contracts/state-transition/chain-interfaces/IDiamondInit.sol"; diff --git a/l1-contracts/test/foundry/unit/concrete/script-utils/ScriptUtils.t.sol b/l1-contracts/test/foundry/unit/concrete/script-utils/ScriptUtils.t.sol new file mode 100644 index 0000000000..cb6ccbe580 --- /dev/null +++ b/l1-contracts/test/foundry/unit/concrete/script-utils/ScriptUtils.t.sol @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.28; + +import {Test} from "forge-std/Test.sol"; +import {Utils as ScriptUtils} from "deploy-scripts/Utils.sol"; + +contract ScriptUtilsTest is Test { + function test_Blake2s256Hash() public { + bytes32 testHash = ScriptUtils.blakeHashBytecode(bytes("hello world")); + + assert(testHash == 0x9aec6806794561107e594b1f6a8a6b0c92a0cba9acf5e5e93cca06f781813b0b); + } + + // add this to be excluded from coverage report + function test() internal virtual {} +} diff --git a/l1-contracts/upgrade-envs/v0.28.0-precompiles/mainnet.toml b/l1-contracts/upgrade-envs/v0.28.0-precompiles/mainnet.toml index 5264b0ac7f..b98a52f6f1 100644 --- a/l1-contracts/upgrade-envs/v0.28.0-precompiles/mainnet.toml +++ b/l1-contracts/upgrade-envs/v0.28.0-precompiles/mainnet.toml @@ -32,9 +32,9 @@ diamond_init_max_pubdata_per_batch = 120000 diamond_init_max_l2_gas_per_batch = 80000000 diamond_init_priority_tx_max_pubdata = 99000 diamond_init_minimal_l2_gas_price = 250000000 -bootloader_hash = "0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35" -default_aa_hash = "0x010005f72e443c94460f4583fb38ef5d0c5cd9897021c41df840f91465c0392e" -evm_emulator_hash = "0x01000d83e0329d9144ad041430fafcbc2b388e5434db8cb8a96e80157738a1da" +bootloader_hash = "0x0100099f5ca0a8b6327c30672e3e94fc56203860f4159d615463ab99cf0eeece" +default_aa_hash = "0x010005f76ff9047aa9a0caabf27b4d40c44bafa64cbcda4bb85104a46fc6210c" +evm_emulator_hash = "0x01000d8bae37b82f311186426184866498b357f41d7a02ced11f3e3fbfbacd63" bridgehub_proxy_address = "0x303a465B659cBB0ab36eE643eA362c509EEb5213" transparent_proxy_admin = "0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1" rollup_da_manager = "0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45" diff --git a/l1-contracts/upgrade-envs/v0.28.0-precompiles/output/mainnet/run-latest.json b/l1-contracts/upgrade-envs/v0.28.0-precompiles/output/mainnet/run-latest.json index c865e1c515..fce5a1c856 100644 --- a/l1-contracts/upgrade-envs/v0.28.0-precompiles/output/mainnet/run-latest.json +++ b/l1-contracts/upgrade-envs/v0.28.0-precompiles/output/mainnet/run-latest.json @@ -2735,7 +2735,7 @@ "address": "0xc9f20fc268fc3e0e597660550033bf2c24218fd8", "topics": [ "0x00e403ec52d56843d21d3a103d6e0df67a220869cea503706fcd690e61bce9ca", - "0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35" + "0x0100099f5ca0a8b6327c30672e3e94fc56203860f4159d615463ab99cf0eeece" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000010be00001000000000002001e00000000000200000060031002700000073b033001970000000000310355000000010020019000000ade0000c13d0000000002000415000000000100043d000200000001001d000000800100043d0000073c0010009c00000ff90000813d000000a00300043d0000073c0030009c000010070000813d000100000002001d000000c00200043d000000000001004b000000230000613d000000010110008a0000073d01100197000000000403001900000000030200190000c3500210011a0000000102200039000000000024004b000000000402a0190000073d0240019700000000012100d900000000020300190000000003040019001000010010003d000400000000001d000000250000013d000400010000003d001000000000001d000000000023004b00000000010300190000000003020019000010150000c13d000000600100043d000000400400043d000000200500043d0000074802000041000000000020043f001900000005001d000000040050043f001800000004001d000000240040043f000000440010043f000000640030043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000749011001c70000800b0200003911a81cd60000040f001a0000000103530000001a0000036500000001002001900000103d0000613d001e074f000000450000075003000041001d00000003001d00000751010000410000075202000041000000000012043500000753010000410000075402000041000000000012043500000755010000410000000000010435001b0756000000450011075600000045001c00000000003d001500000000001d001900000003001d0000000012030434001a00000002001d001800000001001d0000075701000041119a1cd10000040f0000073f0200004100000000001204350000001901000029119a1cd10000040f000007400200004100000000001204350000000501000039119a1cd10000040f000007410200004100000000001204350000075801000041119a1cd10000040f0000073f0200004100000000001204350000001a01000029119a1cd10000040f000007400200004100000000001204350000000501000039119a1cd10000040f000007410200004100000000001204350000001a0000006b000009d20000613d000000180100002900000000070104330000001e01000029000000000071004b001900000007001d00000b6a0000c13d0000000021070434001a00000002001d000000200010008c00000b910000c13d0000004001700039000700000001001d00000000010104330000075d0010009c00000be50000813d000000600270003900000000020204330000075d0020009c00000b9f0000813d0000008002700039000c00000002001d00000000020204330000073c0020009c00000bad0000813d000000a002700039000b00000002001d00000000020204330000075e0020009c00000bbb0000813d000000c003700039000900000003001d00000000040304330000075f0040009c00000b4e0000813d000000e00970003900000000050904330000075f0050009c00000bc90000813d0000010003700039000800000003001d00000000030304330000075d0030009c00000bd70000813d000001e006700039001400000006001d00000000060604330000001a066000290000028007700039000000000076004b00000b5c0000c13d000600000009001d00000000060704330000001f08600190000000b20000613d0000001f066000390000081c09600197000000200690003a00000ae00000613d000000000076001a000011140000413d000000030880021000000100088000890000081d0880021f0000081d0880016700000000097900190000000009090433000000000089017000000aee0000c13d0000000006760019000000b80000013d0000081c0060009c00000b180000813d0000001906600029000002a006600039000000000076004b00000b260000413d00000019070000290000020007700039001300000007001d00000000070704330000001a07700029000000000067004b00000c010000c13d00000000070604330000001f08700190000000d20000613d0000001f077000390000081c09700197000000200790003a00000ae00000613d000000000067001a000011140000413d000000030880021000000100088000890000081d0880021f0000081d0880016700000000096900190000000009090433000000000089017000000aee0000c13d0000000007670019000000d80000013d0000081e0070009c00000b180000213d00000000077600190000002007700039000000000067004b00000b260000413d00000019060000290000022006600039001700000006001d00000000060604330000001a06600029000000000076004b00000c0f0000c13d0000000006070433000007630060009c00000c1d0000813d0000000506600210000000200660003a00000bf30000613d000000000076001a0000114c0000413d000000000876001900000019060000290000024006600039001600000006001d00000000060604330000001a06600029000000000086004b00000c2b0000c13d00000000060804330000001f09600190000001020000613d0000001f076000390000081c0a7001970000002007a0003a00000ae00000613d000000000087001a000011140000413d000000030990021000000100099000890000081d0990021f0000081d09900167000000000a8a0019000000000a0a043300000000009a017000000aee0000c13d0000000007870019000001080000013d0000081e0060009c00000b180000213d00000000076800190000002007700039000000000087004b00000b260000413d00000019080000290000026008800039001200000008001d00000000080804330000001a08800029000000000078004b00000c390000c13d00000000090704330000001f0a9001900000001f08900039000001220000613d0000081c0b8001970000002009b0003a00000ae00000613d000000000079001a000011140000413d000000030aa00210000001000aa000890000081d0aa0021f0000081d0aa00167000000000b7b0019000000000b0b04330000000000ab017000000aee0000c13d0000000007790019000001290000013d0000081e0090009c00000b180000213d00000000099700190000002009900039000000000079004b000000000709001900000b260000413d001e00000007001d00000000090700190000076a0770009a0000076b0070009c00000c470000a13d000000200080008c00000c6d0000813d0000001a070000290000000007070433000000700070008c0000016c0000213d000000000007004b000001c40000613d000000010070008c000001750000613d000000020070008c00000feb0000c13d0000c3510020008c00000f970000813d000000000003004b00000fb30000c13d0000ffff0010008c00000e2e0000a13d0000077602000041000000000020043f000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800202000039119a1cdb0000040f00000060031002700000073b04300197000000200040008c00000020040080390000002003400190000001560000613d000000000501034f0000000006000019000000005705043c0000000006760436000000000036004b000001520000c13d0000001f04400190000001630000613d000000000531034f0000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f000000000043043500000000000103550000000100200190000001680000c13d00000000010004140000000000100420000000000100043d000000000001004b000001ac0000613d00000e2f0000013d000000710070008c000002180000613d000000fe0070008c0000022f0000613d000000ff0070008c00000feb0000c13d0000ffff0010008c0000022f0000213d00000e9c0000013d000000000054004b00000e8e0000c13d0000ffff0010008c00000e2e0000a13d0000077602000041000000000020043f000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800202000039119a1cdb0000040f00000060031002700000073b04300197000000200040008c000000200400803900000020034001900000018f0000613d000000000501034f0000000006000019000000005705043c0000000006760436000000000036004b0000018b0000c13d0000001f044001900000019c0000613d000000000531034f0000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f000000000043043500000000000103550000000100200190000001a10000c13d00000000010004140000000000100420000000000100043d000000000001004b00000e2f0000c13d0000000b0100002900000000010104330000c3500010008c00000e820000213d00000008010000290000000001010433000000000001004b00000e840000c13d000000070100002900000000010104330000076d0010009c00000e180000413d000000190200002900000160012000390000000001010433000000000001004b00000e8c0000c13d000001a0012000390000000001010433000000000001004b00000e1c0000c13d000001c0012000390000000001010433000000000001004b00000e2a0000c13d000000170100002900000000010104330000001a011000290000000001010433000007790010009c0000020e0000a13d00000e1a0000013d000000000054004b00000e8e0000c13d0000ffff0010008c00000e2e0000a13d0000077602000041000000000020043f000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800202000039119a1cdb0000040f00000060031002700000073b04300197000000200040008c00000020040080390000002003400190000001de0000613d000000000501034f0000000006000019000000005705043c0000000006760436000000000036004b000001da0000c13d0000001f04400190000001eb0000613d000000000531034f0000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f000000000043043500000000000103550000000100200190000001f00000c13d00000000010004140000000000100420000000000100043d000000000001004b00000e2f0000c13d0000000b0100002900000000010104330000c3510010008c00000e820000813d00000008010000290000000001010433000000000001004b00000e840000c13d000000070100002900000000010104330000ffff0010008c00000e180000a13d0000001902000029000001a0012000390000000001010433000000000001004b00000e1c0000c13d000001c0012000390000000001010433000000000001004b00000e2a0000c13d000000170100002900000000010104330000001a011000290000000001010433000007630010009c00000e1a0000813d000000000001004b00000e1e0000c13d000000160100002900000000010104330000001a0110002900000000010104330000001f01100039000000200010008c0000022f0000413d00000e2c0000013d0000076d0230009a0000081f0020009c00000fa50000813d000000000003004b000002200000c13d0000001f02600039000000200020008c00000f890000813d0000ffff0010008c00000e9c0000a13d000000190200002900000160012000390000000001010433000000000001004b00000fdd0000c13d000001a0012000390000000001010433000000000001004b00000fc10000c13d000001c0012000390000000001010433000000000001004b00000fcf0000c13d0000077d01000041119a1cd10000040f0000073f0200004100000000001204350000000001000019119a1cd10000040f000007400200004100000000001204350000000501000039119a1cd10000040f000007410200004100000000001204350000001501000029000000000001004b00000000020000390000000102006039000a00000002001d00000007011002100000077e0210009a0000000002020433000d00000002001d0000077f0210009a0000000002020433000e00000002001d000007800210009a0000000002020433000f00000002001d000007810110009a0000000001010433001800000001001d0000078201000041119c1cd10000040f0000073f0200004100000000001204350000001801000029119c1cd10000040f000007400200004100000000001204350000000501000039119c1cd10000040f000007410200004100000000001204350000078201000041119c1cd10000040f0000073f0200004100000000001204350000000f01000029119c1cd10000040f000007400200004100000000001204350000000501000039119c1cd10000040f000007410200004100000000001204350000078201000041119c1cd10000040f0000073f0200004100000000001204350000000e01000029119c1cd10000040f000007400200004100000000001204350000000501000039119c1cd10000040f000007410200004100000000001204350000078201000041119c1cd10000040f0000073f0200004100000000001204350000000d01000029119c1cd10000040f000007400200004100000000001204350000000501000039119c1cd10000040f000007410200004100000000001204350000078301000041000000000010043f0000001801000029000000040010043f0000000f01000029000000240010043f0000000e01000029000000440010043f0000000a01000029000000640010043f0000000d01000029000000840010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000784011001c70000800b0200003911941cd60000040f0000000000010355000000010020019000000ca50000613d000000110100002900000000000104350000000b010000290000000001010433001800000001001d000007870100004111991cd10000040f0000073f020000410000000000120435000000180100002911991cd10000040f00000740020000410000000000120435000000050100003911991cd10000040f00000741020000410000000000120435000007880100004111991cd10000040f0000073f020000410000000000120435000000100100002911991cd10000040f00000740020000410000000000120435000000050100003911991cd10000040f000007410200004100000000001204350000001a010000290000000001010433000000ff0010008c0000031d0000613d000000fe0010008c000003a50000c13d000000150000006b00000eaa0000c13d000000200100003900000019020000290000000000120435000000140100002900000000010104330000001a04000029000000000141001900000000010104330000001f011000390000081c02100197000008200020009c00000b0a0000813d00000013010000290000000001010433000000000141001900000000010104330000001f011000390000081c011001970000030002200039000000000021001a000011220000413d0000001703000029000000000303043300000000034300190000000003030433000007630030009c00000afc0000813d00000000012100190000000502300210000000000012001a000011300000413d0000000001120019000000160200002900000000020204330000001a04000029000000000242001900000000020204330000001f022000390000081c02200197000000000012001a00000b400000413d000000000112001900000012020000290000000002020433000000000242001900000000020204330000001f022000390000081c02200197000000000012001a0000113e0000413d0000000001120019000f00200010003e00000cf50000613d0000078a01000041119c1cd10000040f0000073f0200004100000000001204350000001a01000029119c1cd10000040f000007400200004100000000001204350000000501000039119c1cd10000040f000007410200004100000000001204350000078b01000041119c1cd10000040f0000073f0200004100000000001204350000000f01000029119c1cd10000040f000007400200004100000000001204350000000501000039119c1cd10000040f0000074102000041000000000012043500000019010000290000073b0010009c0000073b0100804100000040011002100000000f020000290000073b0020009c0000073b020080410000006002200210000000000112019f00000000020004140000073b0020009c0000073b02008041000000c002200210000000000112019f0000078c011001c70000801002000039119a1cdb0000040f0000000100200190000011a30000613d000000000101043b0000000702000039000000000012041d000b00010000003d0000031e0000013d000b00000000001d11991ccf0000040f0000000005010019000000140100002900000000010104330000001a04000029000000000141001900000000010104330000001f011000390000081c011001970000000c02000029000000000602043300000015020000290000000502200210000d00000002001d0000078d0220009a00000000070204330000078e0070009c0000078e0700a041001500000076005300000000080700190000000008064019000008200010009c00000b0a0000813d00000013020000290000000002020433000000000242001900000000020204330000001f022000390000081c022001970000030001100039000000000012001a000011220000413d0000001703000029000000000303043300000000034300190000000003030433000007630030009c00000afc0000813d00000000011200190000000502300210000000000012001a000011300000413d0000000001120019000000160200002900000000020204330000001a04000029000000000242001900000000020204330000001f022000390000081c02200197000000000012001a00000b400000413d000000000112001900000012020000290000000002020433000000000242001900000000020204330000001f022000390000081c02200197000000000012001a0000113e0000413d0000000001120019000000200110003a00000c7b0000613d0000000d020000290000078f0220009a0000000002020433000e00000002001d000000000228004b00000c890000413d000a00000008001d000600000002001d000700000007001d000800000006001d000500000005001d0000000a031000c90000000a0230011a000000000012004b00000c970000c13d000027100030008c000027100300a039000f00000003001d0000079101000041119d1cd10000040f0000073f0200004100000000001204350000000a01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000079201000041119d1cd10000040f0000073f0200004100000000001204350000000f01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000079301000041119d1cd10000040f0000073f0200004100000000001204350000000e01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000000f020000290000000e0020006c00000ce70000413d0000001801000029000000000001004b00000008030000290000000704000029000006cb0000613d000000000201001900000058011000c900000000022100d9000000580020008c00000e4a0000c13d000007960110009c0000001502000029000006cd0000413d00000e3c0000013d0000001802000029000000100020006c00000e860000413d11991ccf0000040f001800000001001d000007d701000041119c1cd10000040f00000018020000290018073b0020019b0000073f0200004100000000001204350000001801000029119c1cd10000040f000007400200004100000000001204350000000501000039119c1cd10000040f00000741020000410000000000120435000000140100002900000000010104330000001a04000029000000000141001900000000010104330000001f011000390000081c011001970000000c02000029000000000502043300000015020000290000000502200210000b00000002001d0000078d0220009a00000000060204330000078e0060009c0000078e0600a041001500000065005300000000070600190000000007054019000008210010009c00000b0a0000213d00000013020000290000000002020433000000000242001900000000020204330000001f022000390000081c022001970000030001100039000000000012001a000011220000413d0000001703000029000000000303043300000000034300190000000003030433000007790030009c00000afc0000213d00000000011200190000000502300210000000000012001a000011300000413d0000000001120019000000160200002900000000020204330000001a04000029000000000242001900000000020204330000001f022000390000081c02200197000000000012001a00000b400000413d000000000112001900000012020000290000000002020433000000000242001900000000020204330000001f022000390000081c02200197000000000012001a0000113e0000413d0000000001120019000000200110003a00000c7b0000613d0000000b020000290000078f0220009a0000000002020433000e00000002001d000d00000027005300000c890000413d000a00000007001d000300000006001d000500000005001d0000000a031000c90000000a0230011a000000000012004b00000c970000c13d000027100030008c000027100300a039000f00000003001d0000079101000041119d1cd10000040f0000073f0200004100000000001204350000000a01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000079201000041119d1cd10000040f0000073f0200004100000000001204350000000f01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000079301000041119d1cd10000040f0000073f0200004100000000001204350000000e01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000000f020000290000000e0020006c00000ce70000413d0000000302000029000000050020006b00000015010000290000000001004019001500000001001d00000009010000290000000001010433000e00000001001d00000006010000290000000001010433000a00000001001d000007d80100004100000000001004430000000d01000029000036f60110008c0000000001004019000f00000001001d00000000010004140000073b0010009c0000073b01008041000000c001100210000007d9011001c70000800b0200003911991cdb0000040f0000000100200190000011a10000613d000000000101043b0000000e020000290000000a0020006b00000ebe0000213d000a00000001001d000000000021004b00000eb80000213d000007da01000041119c1cd10000040f0000073f0200004100000000001204350000000f01000029119c1cd10000040f000007400200004100000000001204350000000501000039119c1cd10000040f000007410200004100000000001204350000000001000414000e00000001001d000007db01000041119b1cd10000040f0000073f0200004100000000001204350000000e01000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f000007410200004100000000001204350000001901000029000000200110008a000007dc020000410000000000210435000000140100002900000000010104330000001a04000029000000000141001900000000010104330000001f011000390000081c02100197000008210020009c00000b0a0000213d00000013010000290000000001010433000000000141001900000000010104330000001f011000390000081c011001970000030002200039000000000021001a000011220000413d0000001703000029000000000303043300000000034300190000000003030433000007790030009c00000afc0000213d00000000012100190000000502300210000000000012001a000011300000413d0000000001120019000000160200002900000000020204330000001a04000029000000000242001900000000020204330000001f022000390000081c02200197000000000012001a00000b400000413d000000000112001900000012020000290000000002020433000000000242001900000000020204330000001f022000390000081c02200197000000000012001a0000113e0000413d0000001903000029000000040330008a00000000011200190000073b0030009c0000073b03008041000000400230021000000024011000390000073b0010009c0000073b010080410000006001100210000000000121019f00000000020004140000073b0020009c0000073b02008041000000c002200210000000000112019f0000800c0200003911991cd60000040f00000060031002700000073b03300197000000400030008c0000004006000039000000000603401900000060056001900000092004500039000004bb0000613d000000000701034f0000092008000039000000007907043c0000000008980436000000000048004b000004b70000c13d0000001f06600190000004c80000613d000000000551034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f00000000005404350000000000010355000000010020019000000ec40000613d000000400030008c00000ee40000c13d000009200100043d001a00000001001d0000079d01000041119d1cd10000040f0000073f0200004100000000001204350000001a01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000079e01000041000000000010043f0000001a01000029000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800b0200003911991cd60000040f001a00000001035300000000000103550000000100200190000005010000c13d0000079f0100004111961cd10000040f001a001a000003630000073f0200004100000000001204350000001a0100002911961cd10000040f00000740020000410000000000120435000000050100003911961cd10000040f000007410200004100000000001204350000001a01000029119d1cd10000040f0000073f0200004100000000001204350000000601000039119d1cd10000040f00000741020000410000000000120435000000000100041400000000001004200000079901000041000000000010043f0000001001000029000000040010043f0000001801000029000000240010043f00000000010004140000073b0010009c0000073b01008041000000c0011002100000079a011001c70000800b0200003911991cd60000040f0000000000010355000000010020019000000ef10000613d0000000001000414001a00000001001d000007ac01000041119d1cd10000040f0000073f0200004100000000001204350000001a01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f00000741020000410000000000120435000007ad01000041119d1cd10000040f0000073f0200004100000000001204350000000f01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000000f01000029000007ae0110009c00000d340000813d0000000002000414000000000012004b00000b340000413d0000000d01000029000036f60010008c001700000000001d000005460000a13d000007df01000041119b1cd10000040f0000073f0200004100000000001204350000000f01000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f0000074102000041000000000012043500000019010000290000000a020000290000000f0f00002909c911a9000f040f001700000001001d000007e001000041119b1cd10000040f0000073f0200004100000000001204350000001701000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f000007410200004100000000001204350000000001000414001a00000001001d000007e101000041119b1cd10000040f0000001a030000290016000e003000710000073f0200004100000000001204350000001601000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f000007410200004100000000001204350000000f020000290000001603000029000000000132004b0000000001004019001a00000001001d000000170000006b00000de40000613d000000000023004b00000de40000813d11961ccf0000040f001700000001001d000007b10100004111921cd10000040f0000073f020000410000000000120435000000180100002911921cd10000040f00000740020000410000000000120435000000050100003911921cd10000040f00000741020000410000000000120435000007b20100004111921cd10000040f00000017020000290016073b0020019b0000073f020000410000000000120435000000160100002911921cd10000040f00000740020000410000000000120435000000050100003911921cd10000040f00000741020000410000000000120435000000040000006b001700000000001d0000058e0000c13d0000001602000029000000180120006c000000000100401900170010001000bd000007e201000041119d1cd10000040f0000073f0200004100000000001204350000001701000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000001a020000290000001501200029000000170010006c00000de40000413d0000000301000039119c1cd10000040f00000741020000410000000000120435000007e301000041119c1cd10000040f0000073f0200004100000000001204350000000001000019119c1cd10000040f000007400200004100000000001204350000000501000039119c1cd10000040f000007410200004100000000001204350000000001000414001600000001001d0000000001000414001700000001001d000007ac01000041119d1cd10000040f0000073f0200004100000000001204350000001701000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f00000741020000410000000000120435000007ad01000041119d1cd10000040f0000073f0200004100000000001204350000001a01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000001a01000029000007ae0110009a0000000002000414000000000012004b00000b340000413d00000019010000290000001802000029000000150300002900000010040000290000001a0f00002909cc1751000f040f0000000002000414000000000001004b000005da0000613d000007520300004100000000001304350000001602200069001600000002001d0000001a0220006b001700000000001d0014001a0000002d0000060d0000a13d001700000002001d0000000001000414001400000001001d000007ac01000041119d1cd10000040f0000073f0200004100000000001204350000001401000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f00000741020000410000000000120435000007ad01000041119d1cd10000040f0000073f0200004100000000001204350000001701000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f00000741020000410000000000120435000000170f000029000007ae01f0009c00000d340000813d0000000002000414000000000012004b00000b340000413d0000000001000414001400000001001d000000190100002900000018020000290000001503000029000000100400002909c615bc000f040f001700000001001d0000001402000029000000160120002900000000020004140014000000210051000007e501000041119b1cd10000040f0000073f0200004100000000001204350000001701000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f00000741020000410000000000120435001600000000036b0000001701000029119b1cd10000040f00160016000003630000073f0200004100000000001204350000001601000029119b1cd10000040f000007400200004100000000001204350000000a01000039119b1cd10000040f00000741020000410000000000120435000007af01000041119d1cd10000040f0000073f0200004100000000001204350000001701000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f00000741020000410000000000120435000007b001000041119d1cd10000040f0000073f0200004100000000001204350000001601000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f00000741020000410000000000120435000007e601000041119c1cd10000040f0000073f0200004100000000001204350000000001000019119c1cd10000040f000007400200004100000000001204350000000501000039119c1cd10000040f0000074102000041000000000012043500000014020000290000001a0120006b0000000001004019001600000001001d000007e701000041000000000010043f0000800101000039000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800b02000039119c1cd60000040f000000000001035500000001002001900000066b0000c13d000007e801000041119d1cd10000040f0000073f0200004100000000001204350000800101000039119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000000001000414000000000010042000000008010000290000000001010433001300000001001d000000000001004b0000092d0000613d00000014020000290000001a0020006b000009310000a13d0000000001000414001a00000001001d000007ac01000041119d1cd10000040f0000073f0200004100000000001204350000001a01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f00000741020000410000000000120435000007ad01000041119d1cd10000040f0000073f0200004100000000001204350000001601000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000001601000029000007ae0110009a0000000002000414000000000012004b00000b340000413d0000000001000414001400000001001d119d1ccf0000040f001a00000001001d000007b10100004111961cd10000040f0000073f020000410000000000120435000000180100002911961cd10000040f00000740020000410000000000120435000000050100003911961cd10000040f00000741020000410000000000120435000007b20100004111961cd10000040f0000001a02000029001a073b0020019b0000073f0200004100000000001204350000001a0100002911961cd10000040f00000740020000410000000000120435000000050100003911961cd10000040f00000741020000410000000000120435000000040000006b0000000001000019000006b70000c13d0000001a02000029000000180120006c000000000100401900000010011000b900000015070000290000001608000029000000000078001a000011840000413d0000000002780019000000000412004b000000000400401900000013010000290000001902000029000000170300002900000018050000290000001006000029000000000f08001909c41b8f000f040f00000000010004140000001401100069000000160210006b0000000002004019001600000002001d000009320000013d00000794010000410000001502000029000000060110006b0000000001004019000a00000001001d000000000043004b0000000002004019001500000002001d0000000001000414000f00000001001d0000079801000041119b1cd10000040f0000073f0200004100000000001204350000000f01000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f00000005020000290000073b03200197000007410200004100000000001204350000079901000041000000000010043f0000001801000029000000040010043f000e00000003001d000000240030043f00000000010004140000073b0010009c0000073b01008041000000c0011002100000079a011001c70000800b0200003911991cd60000040f0000000000010355000000010020019000000d420000613d000000200100003900000019020000290000000000120435000000140100002900000000010104330000001a04000029000000000141001900000000010104330000001f011000390000081c02100197000008210020009c00000b0a0000213d00000013010000290000000001010433000000000141001900000000010104330000001f011000390000081c011001970000030002200039000000000021001a000011220000413d0000001703000029000000000303043300000000034300190000000003030433000007790030009c00000afc0000213d00000000012100190000000502300210000000000012001a000011300000413d0000000001120019000000160200002900000000020204330000001a04000029000000000242001900000000020204330000001f022000390000081c02200197000000000012001a00000b400000413d000000000112001900000012020000290000000002020433000000000242001900000000020204330000001f022000390000081c02200197000000000012001a0000113e0000413d0000000001120019001600200010003e00000cf50000613d0000078a01000041119d1cd10000040f0000073f0200004100000000001204350000001a01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000078b01000041119d1cd10000040f0000073f0200004100000000001204350000001601000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f0000074102000041000000000012043500000019010000290000073b0010009c0000073b01008041000000400110021000000016020000290000073b0020009c0000073b020080410000006002200210000000000112019f00000000020004140000073b0020009c0000073b02008041000000c002200210000000000112019f0000078c011001c70000801002000039119c1cdb0000040f00000001002001900000119f0000613d000000000101043b001600000001001d0000079c01000041119b1cd10000040f0000073f0200004100000000001204350000001601000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f000007410200004100000000001204350000079d01000041119d1cd10000040f0000073f0200004100000000001204350000001601000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000079e01000041000000000010043f0000001601000029000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800b0200003911991cd60000040f0000000000010355000000010020019000000da10000613d000007a101000041119d1cd10000040f0000073f0200004100000000001204350000000001000019119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f00000741020000410000000000120435000000170100002900000000010104330000001a011000290000000002010433000000410020008c00000d4d0000813d000007a203000041000009600030043f000009800000043f0000004003000039000009a00030043f000007ff0320018f000000000032004b00000dc80000c13d000000050220021000000000032100190000002003300039000000000013004b00000d5b0000413d000007a00000a13d000009c00400003900000000150104340000000004540436000000000031004b0000079c0000413d00000000010004140000073b0010009c0000073b01008041000000c001100210000007a40020009c000007a4020080410000006002200210000000000112019f000007a50110009a000080040200003911991cd60000040f001a00000002001d00170000000103530000000000010355000007a601000041119d1cd10000040f0000073f0200004100000000001204350000001a01000029000000010110018f001a00000001001d119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000001a0000006b00000d690000613d0000000001000414001a000f0010007300000d930000413d000007a801000041119b1cd10000040f0000073f0200004100000000001204350000001a01000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f00000741020000410000000000120435000000090100002900000000030104330000000c010000290000000002010433000000000002004b000f00000003001d001400000002001d000007da0000613d00000000012300a900000000022100d9000000000032004b000007db0000613d00000e580000013d000000000100001900000019030000290000014002300039001200000002001d0000000002020433000000000012001a0000115a0000413d00000000011200190000016002300039001300000002001d0000000002020433000000000012004b00000dd60000413d0000001a020000290017000a002000730000000004000019001a00000000001d000008a10000a13d000007aa01000041119b1cd10000040f0000073f0200004100000000001204350000001701000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f00000741020000410000000000120435000007ab01000041119b1cd10000040f0000073f0200004100000000001204350000001701000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f000007410200004100000000001204350000000001000414001a00000001001d000007ac01000041119d1cd10000040f0000073f0200004100000000001204350000001a01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f00000741020000410000000000120435000007ad01000041119d1cd10000040f0000073f0200004100000000001204350000001701000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000001701000029000007ae0110009c00000d340000813d0000000002000414000000000012004b00000b340000413d0000000001000414000a00000001001d00000019010000290000000e020000290000001803000029000000170f00002909cf1a15000f040f001a00000001001d000c00000000036b0000001a01000029119b1cd10000040f000c000c000003630000073f0200004100000000001204350000000c01000029119b1cd10000040f000007400200004100000000001204350000000a01000039119b1cd10000040f00000741020000410000000000120435000007af01000041119d1cd10000040f0000073f0200004100000000001204350000001a01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f00000741020000410000000000120435000007b001000041119d1cd10000040f0000073f0200004100000000001204350000000c01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000000001000414000900000001001d119b1ccf0000040f000c00000001001d000007b101000041119d1cd10000040f0000073f0200004100000000001204350000000e01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f00000741020000410000000000120435000007b201000041119d1cd10000040f0000000c02000029000c073b0020019b0000073f0200004100000000001204350000000c01000029119d1cd10000040f000007400200004100000000001204350000000501000039119d1cd10000040f000007410200004100000000001204350000001802000029000000000002004b0000087c0000613d0000000c030000290000000e0130006c000000000100401900000000042100a900000000022400d9000000000012004b00000015020000290000087e0000613d00000f6d0000013d0000000004000019000000150200002900000009030000290000000a01300069000000000014001a000011760000413d0000001703000029000000000023001a00000f0b0000413d00000000011400190000000002230019000000000112004b0000000001004019001500000001001d001700000004001d119c1cd10000040f0000073f0200004100000000001204350000001701000029119c1cd10000040f000007400200004100000000001204350000001801000029119c1cd10000040f000007b40200004100000000001204350000000801000039119c1cd10000040f000007410200004100000000001204350000000d01000029000011e0011000390000000004010433000000150040006c000000150400a029000000140040006c00000f190000213d000000140140006b001800000000001d000008a80000613d0018000f001000bd00000018011000f90000000f0010006c00000f270000c13d001700000004001d0000000001040019119c1cd10000040f0000073f0200004100000000001204350000000901000039119c1cd10000040f00000741020000410000000000120435000007b601000041119b1cd10000040f0000073f0200004100000000001204350000001701000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f00000741020000410000000000120435000007b701000041000000000010043f0000800101000039000000040010043f0000001801000029000000240010043f00000000010004140000073b0010009c0000073b01008041000000c0011002100000079a011001c70000800a02000039119a1cd60000040f0000000000010355000000010020019000000b3a0000613d0000001a0000006b000008da0000613d000000120100002900000000010104330000001802000029000000000021001a000011680000413d000000000121001900000013020000290000000002020433000000000112004b000008e00000813d00000e660000013d0000000b0000006b00000f510000c13d00000013010000290000000001010433000000180110006c00000f5f0000413d000000000001004b000008f40000613d000000190200002900000180022000390000000002020433000007b703000041000000000030043f000007ba02200197000000040020043f000000240010043f00000000010004140000073b0010009c0000073b01008041000000c0011002100000079a011001c70000800a02000039119a1cd60000040f0000000000010355000000010020019000000b3a0000613d00000011010000290000001a020000290000000000210435000007bd01000041119c1cd10000040f0000073f0200004100000000001204350000001a01000029119c1cd10000040f000007400200004100000000001204350000000501000039119c1cd10000040f00000741020000410000000000120435000007be01000041000000000010043f0000000101000039000000040010043f0000001601000029000000240010043f0000001a01000029000000440010043f00000000010004140000073b0010009c0000073b01008041000000c001100210000007bf011001c70000800802000039119a1cd60000040f0000000000010355000000010020019000000dea0000613d0000000b0000006b000009a70000c13d00000754010000410000000001010433000000000010043f0000001601000029000000200010043f00000000010004140000073b0010009c0000073b01008041000000c001100210000007c2011001c70000801002000039119a1cdb0000040f0000000100200190000011a30000613d000000000101043b000007540200004100000000001204350000075502000041000000000102043300000001011000390000000000120435000009a70000013d00000007010000290000000001010433001300000001001d000009320000013d001600000000001d119d1ccf0000040f001a00000001001d000007b10100004111961cd10000040f0000073f020000410000000000120435000000180100002911961cd10000040f00000740020000410000000000120435000000050100003911961cd10000040f00000741020000410000000000120435000007b20100004111961cd10000040f0000001a02000029001a073b0020019b0000073f0200004100000000001204350000001a0100002911961cd10000040f00000740020000410000000000120435000000050100003911961cd10000040f00000741020000410000000000120435000000040000006b0000000003000019000009550000c13d0000001a02000029000000180120006c000000000100401900000010031000b900000016020000290000001501200029001a00000003001d000000000131004b0000000001004019001900000001001d119b1cd10000040f0000073f0200004100000000001204350000001a01000029119b1cd10000040f000007400200004100000000001204350000001001000029119b1cd10000040f000007b40200004100000000001204350000000801000039119b1cd10000040f000007410200004100000000001204350000000b01000029000011e0011000390000000003010433000000190030006c000000190300a0290000000c010000290000000001010433000000000013004b00000f350000213d0000073c0030009c00000f430000813d0000000a02000029000000000002004b001a00000003001d0000097e0000613d00000000012300a900000000022100d9000000000032004b0000097f0000613d00000f7b0000013d0000000001000019000007eb02000041000000000020043f0000800102000039000000040020043f0000001302000029000000240020043f000000440010043f00000000010004140000073b0010009c0000073b01008041000000c001100210000007bf011001c70000800a0200003911991cd60000040f000000000001035500000001002001900000001a0100002900000e740000613d119c1cd10000040f0000073f0200004100000000001204350000000901000039119c1cd10000040f00000741020000410000000000120435000007b601000041119b1cd10000040f0000073f0200004100000000001204350000001a01000029119b1cd10000040f000007400200004100000000001204350000000501000039119b1cd10000040f00000741020000410000000000120435000000110100002900000017020000290000000000210435000000040100003911941cd10000040f000007410200004100000000001204350000000000000419000007ed01000041000000000010043f00000000010004140000073b0010009c0000073b01008041000000c001100210000007ee011001c70000800b0200003911941cd60000040f0000000000010355000000010020019000000d030000613d0000001c01000029001c00010010003d001500010010003d0000001b01000029001b00200010003d001100200010003d0000001d01000029001d00400010003d0000004003100039000007f10030009c0000004e0000413d000009d20000013d119a1b7b0000040f000006c50000013d119a1b7b0000040f001700000000001d000006090000013d119a1b7b0000040f001700000000001d000005460000013d119a1b7b0000040f0000000002000414000005da0000013d119a1b7b0000040f001a00000000001d0000082c0000013d000007e701000041000000000010043f000000040000043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800b0200003911a71cd60000040f00000000000103550000000100200190000009ed0000c13d000007e80100004111a31cd10000040f0000073f020000410000000000120435000000000100001911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000000000100041400000000001004200000080801000041000000000010043f000000040000043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800b0200003911a71cd60000040f0000000000010355000000010020019000000a080000c13d000008090100004111a31cd10000040f0000073f020000410000000000120435000000000100001911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000000000100041400000000001004200000080a0100004100000000001004430000000001000410000000040010044300000000010004140000073b0010009c0000073b01008041000000c0011002100000080b011001c70000800a0200003911a81cdb0000040f0000000100200190000011a70000613d000000000101043b000007eb02000041000000000020043f0000800102000039000000040020043f0000000202000029000000240020043f000000440010043f00000000010004140000073b0010009c0000073b01008041000000c001100210000007bf011001c70000800a0200003911a81cd60000040f0000000000010355000000010020019000000e740000613d0000000b0100003911a71cd10000040f000007410200004100000000001204350000001501000029000000000001004b00000000020000390000000102006039001600000002001d00000007011002100000077e0210009a0000000002020433001700000002001d0000077f0210009a0000000002020433001800000002001d000007800210009a0000000002020433001900000002001d000007810110009a0000000001010433001a00000001001d000007820100004111a31cd10000040f0000073f0200004100000000001204350000001a0100002911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000007820100004111a31cd10000040f0000073f020000410000000000120435000000190100002911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000007820100004111a31cd10000040f0000073f020000410000000000120435000000180100002911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000007820100004111a31cd10000040f0000073f020000410000000000120435000000170100002911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f000007410200004100000000001204350000078301000041000000000010043f0000001a01000029000000040010043f0000001901000029000000240010043f0000001801000029000000440010043f0000001601000029000000640010043f0000001701000029000000840010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000784011001c70000800b0200003911a81cd60000040f001700000001035300000017000003650000000100200190000010670000613d0000080c01000041000000000010043f00000000010004140000073b0010009c0000073b01008041000000c001100210000007ee011001c70000800b0200003911a81cd60000040f001a0000000103530000001a000003650000000100200190000010a90000613d0000080d0100004111a31cd10000040f0000073f020000410000000000120435000000000100001911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f000007410200004100000000001204350000080e01000041000000000010043f00000000010004140000073b0010009c0000073b01008041000000c001100210000007ee011001c70000800b0200003911a81cd60000040f001a0000000103530000001a000003650000000100200190000010c70000613d000007540100004100000000010104330000000202000039000000000012041d000007550100004100000000010104330000000302000039000000000012041d000008110100004111a31cd10000040f0000073f020000410000000000120435000000000100001911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f000007410200004100000000001204350000000c0100003911a51cd10000040f0000074102000041000000000012043500000812010000410000081302000041000000000012043500000814010000410000000001010433000000400010008c000010e50000c13d0000081601000041000000000101043300000000020004140000073b0020009c0000073b02008041000000c00220021000000064011000390000073b0010009c0000073b010080410000006001100210000000000121019f00000817011001c7000080080200003911a81cd60000040f001a0000000103530000001a000003650000000100200190000010f20000613d0000000001000415000000010110006900000000010000020000000001000019000000000001042d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000076901000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001201000039000000250010043f0000076701000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f0000077b01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d601000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000080001000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007ff01000041000000450010043f000007470100004100001ce800010430000000000100043d0000074301100197000007f5011001c7000000000010043f000007bc0100004100001ce800010430000000000100043d0000074301100197000007bb011001c7000000000010043f000007bc0100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f000007d301000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001501000039000000250010043f0000080301000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000d01000039000000250010043f0000076001000041000000450010043f000007470100004100001ce800010430001a00000001001d000007590100004111a51cd10000040f0000073f0200004100000000001204350000001a0100002911a51cd10000040f00000740020000410000000000120435000000050100003911a51cd10000040f000007410200004100000000001204350000075a0100004111a51cd10000040f0000073f020000410000000000120435000000190100002911a51cd10000040f00000740020000410000000000120435000000050100003911a51cd10000040f00000741020000410000000000120435000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001b01000039000000250010043f0000075b01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000f01000039000000250010043f0000075c01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000b01000039000000250010043f0000080601000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001101000039000000250010043f0000080501000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001f01000039000000250010043f0000080401000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001d01000039000000250010043f0000080201000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001201000039000000250010043f0000080101000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000d01000039000000250010043f0000080701000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007fe01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001201000039000000250010043f0000076101000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001401000039000000250010043f0000076201000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000076401000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001701000039000000250010043f0000076501000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001801000039000000250010043f0000076601000041000000450010043f000007470100004100001ce800010430001a00000009001d000007590100004111a51cd10000040f0000073f0200004100000000001204350000001a0100002911a51cd10000040f00000740020000410000000000120435000000050100003911a51cd10000040f00000741020000410000000000120435000007fa0100004111a51cd10000040f0000073f020000410000000000120435000007fb0100004111a51cd10000040f00000740020000410000000000120435000000050100003911a51cd10000040f00000741020000410000000000120435000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f000000250010043f000007fc01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001901000039000000250010043f0000076c01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d101000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001d01000039000000250010043f000007d001000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000079001000041000000450010043f000007470100004100001ce800010430001a000000010353000007850100004111a11cd10000040f0000073f020000410000000000120435000000180100002911a11cd10000040f00000740020000410000000000120435000000050100003911a11cd10000040f00000741020000410000000000120435000007850100004111a11cd10000040f0000073f0200004100000000001204350000000f0100002911a11cd10000040f00000740020000410000000000120435000000050100003911a11cd10000040f00000741020000410000000000120435000007850100004111a11cd10000040f0000073f0200004100000000001204350000000e0100002911a11cd10000040f00000740020000410000000000120435000000050100003911a11cd10000040f00000741020000410000000000120435000007850100004111a11cd10000040f0000073f0200004100000000001204350000000a0100002911a11cd10000040f00000740020000410000000000120435000000050100003911a11cd10000040f00000741020000410000000000120435000000000100043d000007430110019700000786011001c7000000000010043f0000001a0100035f00000060041002700000001f0240018f0000074c0340019800000001013001bf00000d200000613d00000001050000390000001a0600035f000000006706043c0000000005750436000000000015004b00000ce20000c13d00000d200000013d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001c01000039000000250010043f000007cf01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007ce01000041000000450010043f000007470100004100001ce800010430001a000000010353000007ef0100004111a11cd10000040f0000073f020000410000000000120435000000000100001911a11cd10000040f00000740020000410000000000120435000000050100003911a11cd10000040f00000741020000410000000000120435000000000100043d0000074301100197000007f0011001c7000000000010043f0000001a0100035f00000060041002700000001f0240018f0000074c0340019800000001013001bf00000d200000613d00000001050000390000001a0600035f000000006706043c0000000005750436000000000015004b00000d1c0000c13d0000073b04400197000000000002004b00000d2f0000613d0000001a0500035f000000000335034f0000000302200210000000000501043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002104350000074d0040009c0000074d0400804100000060014002100000074e0110009a00001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007c801000041000000450010043f000007470100004100001ce8000104300000079b0100004111981cd10000040f0000073f020000410000000000120435000000180100002911981cd10000040f00000740020000410000000000120435000000050100003911981cd10000040f00000efb0000013d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001501000039000000250010043f000007cd01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007cc01000041000000450010043f000007470100004100001ce8000104300000079f0100004111951cd10000040f0000073f020000410000000000120435001a00170000002d000000170100002911951cd10000040f00000740020000410000000000120435000000050100003911951cd10000040f000007410200004100000000001204350000001a0100002911981cd10000040f0000073f020000410000000000120435000000060100003911981cd10000040f00000741020000410000000000120435000000000100043d0000074301100197000007a7011001c7000000000010043f0000001a0100002900000060041002700000001f0240018f0000074c0340019800000001013001bf00000d8e0000613d0000000105000039000000170600035f000000006706043c0000000005750436000000000015004b00000d8a0000c13d0000073b04400197000000000002004b00000d2f0000613d000000170500035f00000d240000013d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007cb01000041000000450010043f000007470100004100001ce800010430001a0000000103530000079f0100004111951cd10000040f0000073f0200004100000000001204350019001a0000002d0000001a0100002911951cd10000040f00000740020000410000000000120435000000050100003911951cd10000040f00000741020000410000000000120435000000190100002911981cd10000040f0000073f020000410000000000120435000000060100003911981cd10000040f00000741020000410000000000120435000000000100043d0000074301100197000007a0011001c7000000000010043f000000190100002900000060041002700000001f0240018f0000074c0340019800000001013001bf00000d200000613d00000001050000390000001a0600035f000000006706043c0000000005750436000000000015004b00000dc30000c13d00000d200000013d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000201000039000000250010043f000007a301000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001501000039000000250010043f000007c901000041000000450010043f000007470100004100001ce800010430000000000100043d0000074301100197000007f4011001c7000000000010043f000007bc0100004100001ce8000104300019000000010353000007c001000041119f1cd10000040f0000073f0200004100000000001204350000001601000029119f1cd10000040f000007400200004100000000001204350000000501000039119f1cd10000040f00000741020000410000000000120435000007c001000041119f1cd10000040f0000073f0200004100000000001204350000001a01000029119f1cd10000040f000007400200004100000000001204350000000501000039119f1cd10000040f00000741020000410000000000120435000000000100043d0000074301100197000007c1011001c7000000000010043f000000190100035f00000060041002700000001f0240018f0000074c0340019800000001013001bf00000e130000613d0000000105000039000000190600035f000000006706043c0000000005750436000000000015004b00000e0f0000c13d0000073b04400197000000000002004b00000d2f0000613d000000190500035f00000d240000013d000007440100004100000e9f0000013d000007440100004100000aff0000013d000007440100004100000fc40000013d0000074401000041000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001501000039000000250010043f0000077c01000041000000450010043f000007470100004100001ce800010430000007440100004100000fd20000013d000007440100004100000f8c0000013d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001c01000039000000250010043f0000077801000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000201000039000000250010043f0000079701000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000201000039000000250010043f0000079501000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007a901000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007b801000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001001000039000000250010043f000007ec01000041000000450010043f000007470100004100001ce800010430000007440100004100000f9a0000013d000007440100004100000fb60000013d000000000100043d0000074301100197000007f8011001c7000000000010043f000007bc0100004100001ce800010430000007440100004100000fe00000013d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001401000039000000250010043f0000077a01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001401000039000000250010043f0000077001000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001d01000039000000250010043f0000078901000041000000450010043f000007470100004100001ce800010430000000000100043d0000074301100197000007f6011001c7000000000010043f000007bc0100004100001ce800010430000000000100043d0000074301100197000007f7011001c7000000000010043f000007bc0100004100001ce800010430000000000200043d0000074302200197000007dd022001c7000000000020043f0000001f0430018f0000074c0530019800000001025001bf00000ed20000613d0000000106000039000000000701034f000000007807043c0000000006860436000000000026004b00000ece0000c13d000000000004004b00000edf0000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000074d0030009c0000074d0300804100000060013002100000074e0110009a00001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f000000250010043f000007de01000041000000450010043f000007470100004100001ce8000104300000079b0100004111981cd10000040f0000073f020000410000000000120435000000100100002911981cd10000040f00000740020000410000000000120435000000050100003911981cd10000040f00000741020000410000000000120435000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001501000039000000250010043f0000079b01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001901000039000000250010043f000007c601000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001801000039000000250010043f000007c501000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007b501000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001601000039000000250010043f000007f301000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001901000039000000250010043f000007f201000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001101000039000000250010043f000007c401000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007c301000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001b01000039000000250010043f000007b301000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007ea01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001701000039000000250010043f0000076f01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001801000039000000250010043f0000077401000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001901000039000000250010043f0000076e01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001201000039000000250010043f0000077501000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001201000039000000250010043f0000077201000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001201000039000000250010043f0000077301000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001201000039000000250010043f0000077101000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000f01000039000000250010043f000007f901000041000000450010043f000007470100004100001ce8000104300000000201000029000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001b01000039000000250010043f0000081b01000041000000450010043f000007470100004100001ce8000104300000000201000029000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001a01000039000000250010043f0000081a01000041000000450010043f000007470100004100001ce800010430001a00000001001d001900000003001d0000073e0100004111a51cd10000040f0000073f0200004100000000001204350000001a0100002911a51cd10000040f00000740020000410000000000120435000000050100003911a51cd10000040f00000741020000410000000000120435000007420100004111a51cd10000040f0000073f020000410000000000120435000000190100002911a51cd10000040f00000740020000410000000000120435000000050100003911a51cd10000040f000007410200004100000000001204350000000201000029000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001401000039000000250010043f0000074601000041000000450010043f000007470100004100001ce8000104300000074a0100004111a31cd10000040f0000073f020000410000000000120435000000190100002911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f000007410200004100000000001204350000074a0100004111a31cd10000040f0000073f020000410000000000120435000000180100002911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000000000100043d00000743011001970000074b011001c7000000000010043f0000001a0100035f000000000801034f00000060041002700000001f0240018f0000074c0340019800000001013001bf0000110f0000613d0000000105000039000000000608034f000000006706043c0000000005750436000000000015004b000010620000c13d0000110f0000013d000007850100004111a31cd10000040f0000073f0200004100000000001204350000001a0100002911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000007850100004111a31cd10000040f0000073f020000410000000000120435000000190100002911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000007850100004111a31cd10000040f0000073f020000410000000000120435000000180100002911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000007850100004111a31cd10000040f0000073f020000410000000000120435000000160100002911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000000000100043d000007430110019700000786011001c7000000000010043f000000170100035f000000000801034f00000060041002700000001f0240018f0000074c0340019800000001013001bf0000110f0000613d0000000105000039000000000608034f000000006706043c0000000005750436000000000015004b000010a40000c13d0000110f0000013d000007ef0100004111a31cd10000040f0000073f020000410000000000120435000000000100001911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000000000100043d0000074301100197000007f0011001c7000000000010043f0000001a0100035f000000000801034f00000060041002700000001f0240018f0000074c0340019800000001013001bf0000110f0000613d0000000105000039000000000608034f000000006706043c0000000005750436000000000015004b000010c20000c13d0000110f0000013d0000080f0100004111a31cd10000040f0000073f020000410000000000120435000000000100001911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000000000100043d000007430110019700000810011001c7000000000010043f0000001a0100035f000000000801034f00000060041002700000001f0240018f0000074c0340019800000001013001bf0000110f0000613d0000000105000039000000000608034f000000006706043c0000000005750436000000000015004b000010e00000c13d0000110f0000013d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f000000250010043f0000081501000041000000450010043f000007470100004100001ce800010430000008180100004111a31cd10000040f0000073f020000410000000000120435000000000100001911a31cd10000040f00000740020000410000000000120435000000050100003911a31cd10000040f00000741020000410000000000120435000000000100043d000007430110019700000819011001c7000000000010043f0000001a0100035f000000000801034f00000060041002700000001f0240018f0000074c0340019800000001013001bf0000110f0000613d0000000105000039000000000608034f000000006706043c0000000005750436000000000015004b0000110b0000c13d0000073b04400197000000000002004b00000d2f0000613d000000000338034f00000d250000013d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000076801000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f000007d501000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d401000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d201000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000201000039000000250010043f000007fd01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000201000039000000250010043f000007ca01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007b901000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001901000039000000250010043f000007c701000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007e901000041000000450010043f000007470100004100001ce80001043011951cd40000040f000011a80000013d000011a70000013d000011960000013d11981cd40000040f000011a80000013d0000119d0000013d000011a30000013d000011a50000013d0000119f0000013d000011a10000013d119f1cd40000040f000011a80000013d11a11cd40000040f000011a80000013d11a31cd40000040f000011a80000013d11a51cd40000040f000011a80000013d11a71cd40000040f000011a80000013d11a81cd40000040f000000000001042f0011000000000002000e00000002001d001100000001001d000007e701000041000000000010043f0000800101000039000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800b0200003915ba1cd60000040f00000000000103550000000100200190000011c80000c13d000007e80100004115b81cd10000040f0000073f020000410000000000120435000080010100003915b81cd10000040f00000740020000410000000000120435000000050100003915b81cd10000040f00000741020000410000000000120435000000000100041400000000001004200000080801000041000000000010043f0000000e01000029000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800b0200003915ba1cd60000040f00000000000103550000000100200190000011e40000c13d000008090100004115b81cd10000040f0000073f0200004100000000001204350000000e0100002915b81cd10000040f00000740020000410000000000120435000000050100003915b81cd10000040f0000074102000041000000000012043500000000010004140000000000100420000008220100004115b91cd10000040f0000073f020000410000000000120435000000000100001915b91cd10000040f00000740020000410000000000120435000000050100003915b91cd10000040f0000074102000041000000000012043500000011010000290000004001100039000300000001001d00000000020104330000082301000041000000000010043f000f00000002001d000000040020043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c7000080060200003915ba1cd60000040f00000060031002700000073b03300197000000200030008c000000200400003900000000040340190000001f0540018f00000020044001900000120d0000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b000012090000c13d000000000005004b0000121a0000613d000000000641034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000000010355000000000400043d0000000100200190000014910000613d000000000004004b0000149f0000613d0000001101000029000001200110003900000000020104330000082501000041000000000010043f0000000f01000029000000040010043f000400000002001d000000240020043f000000440000043f00000000010004140000073b0010009c0000073b01008041000000c001100210000007bf011001c7000080030200003915ba1cd60000040f00000000000103550000000100200190000014a30000613d000000000100001915b91cd10000040f00000741020000410000000000120435000008260100004115b81cd10000040f0000073f020000410000000000120435000000000100001915b81cd10000040f00000740020000410000000000120435000000050100003915b81cd10000040f00000741020000410000000000120435000008260100004115b81cd10000040f0000073f0200004100000000001204350000000f0100002915b81cd10000040f00000740020000410000000000120435000000050100003915b81cd10000040f0000001103000029000000200530003900000741020000410000000000120435000000400230008a000009200100043d000b00000002001d0000000000120435000009400100043d00000060020000390000000000230435000000200230008a000a00000002001d0000000000120435000000600230008a0000082701000041000d00000002001d0000000000120435000001e001300039000c00000001001d0000000001010433000000000151001900000000010104330000001f011000390000081c02100197000008200020009c000014670000813d0000020001300039000800000001001d0000000001010433000000000151001900000000010104330000001f011000390000081c011001970000030002200039000000000021001a0000158e0000413d00000011030000290000022003300039000900000003001d0000000003030433001000000005001d00000000035300190000000003030433000007630030009c000014750000813d00000000012100190000000502300210000000000012001a0000159c0000413d000000000112001900000011020000290000024002200039000700000002001d00000000020204330000001004000029000000000242001900000000020204330000001f022000390000081c02200197000000000012001a000014830000413d000000000112001900000011020000290000026002200039000500000002001d0000000002020433000000000242001900000000020204330000001f022000390000081c02200197000000000012001a000015aa0000413d000000000112001900000000020004140000073b0020009c0000073b02008041000000c00220021000000064011000390000073b0010009c0000073b010080410000006001100210000000000112019f0000001102000029000000440220008a0000073b0020009c0000073b02008041000600400020021800000006011001af0000000f0200002915ba1cd60000040f000200000002001d00010000000103530000000000010355000000020100003915b91cd10000040f000000010800035f00000060028002700000073b022001970000074103000041000000000013043500000002010000290000000100100190000014b30000613d000000200020008c000014d30000c13d000000000108043b000008290010009c000014d40000c13d0000082501000041000000000010043f0000000f01000029000000040010043f0000000401000029000000240010043f0000000101000039000000440010043f00000000010004140000073b0010009c0000073b01008041000000c001100210000007bf011001c7000080030200003915ba1cd60000040f00000000000103550000000100200190000014d90000613d0000082a0100004115b91cd10000040f0000073f020000410000000000120435000000010100003915b91cd10000040f00000740020000410000000000120435000000050100003915b91cd10000040f0000074102000041000000000012043500000003010000290000000001010433000f00000001001d0000000e01000029000000000001004b000012f50000613d000000000201001900000011010000290000008001100039000000000101043300040000002100ad00000004022000f9000000000012004b000012f60000613d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000082b01000041000000450010043f000007470100004100001ce800010430000400000000001d0000080a0100004100000000001004430000800101000039000000040010044300000000010004140000073b0010009c0000073b01008041000000c0011002100000080b011001c70000800a0200003915ba1cdb0000040f0000000100200190000015b90000613d000000000101043b000300000001001d000000110100002900000100011000390000000001010433000e00000001001d000000000001004b000013ea0000613d000000000100001915b91cd10000040f00000741020000410000000000120435000009200100043d0000000b020000290000000000120435000009400100043d0000000a0200002900000000001204350000001101000029000000600200003900000000002104350000082c010000410000000d0200002900000000001204350000000c0100002900000000010104330000001004000029000000000141001900000000010104330000001f011000390000081c02100197000008210020009c000014670000213d00000008010000290000000001010433000000000141001900000000010104330000001f011000390000081c011001970000030002200039000000000021001a0000158e0000413d0000000903000029000000000303043300000000034300190000000003030433000007790030009c000014750000213d00000000012100190000000502300210000000000012001a0000159c0000413d0000000001120019000000070200002900000000020204330000001004000029000000000242001900000000020204330000001f022000390000081c02200197000000000012001a000014830000413d000000000112001900000005020000290000000002020433000000000242001900000000020204330000001f022000390000081c02200197000000000012001a000015aa0000413d000000000112001900000000020004140000073b0020009c0000073b02008041000000c00220021000000064011000390000073b0010009c0000073b010080410000006001100210000000000112019f00000006011001af0000000f0200002915b91cd60000040f000200000002001d000f0000000103530000000000010355000000020100003915b91cd10000040f0000000f0300035f00000741020000410000000000120435000000020100002900000001001001900000150f0000613d000000010100003915b91cd10000040f00000741020000410000000000120435000009200100043d0000000b020000290000000000120435000009400100043d0000000a0200002900000000001204350000001101000029000000600200003900000000002104350000082d010000410000000d0200002900000000001204350000000c0100002900000000010104330000001004000029000000000141001900000000010104330000001f011000390000081c02100197000008210020009c000014670000213d00000008010000290000000001010433000000000141001900000000010104330000001f011000390000081c011001970000030002200039000000000021001a0000158e0000413d0000000903000029000000000303043300000000034300190000000003030433000007790030009c000014750000213d00000000012100190000000502300210000000000012001a0000159c0000413d0000000001120019000000070200002900000000020204330000001004000029000000000242001900000000020204330000001f022000390000081c02200197000000000012001a000014830000413d000000000112001900000005020000290000000002020433000000000242001900000000020204330000001f022000390000081c02200197000000000012001a000015aa0000413d000000000112001900000000020004140000073b0020009c0000073b02008041000000c00220021000000064011000390000073b0010009c0000073b010080410000006001100210000000000112019f00000006011001af0000000e0200002915b91cd60000040f000000000001035500000060031002700000073b033001970000000100200190000015230000613d0000003f0030008c000015430000a13d000000000201043b0000082f0020009c000015460000c13d0000002002100370000000000202043b000000000032004b0000154b0000213d0000002004200039000000000034004b0000154b0000213d000000000121034f000000000401043b000000000040043f000004210040008c000015500000813d0000001f054000390000081c05500197000004010550008a000008370050009c000015550000413d00000020054000390000000002250019000000000032004b000015590000213d0000081c035001980000001f0450018f0000050002300039000013d70000613d0000050005000039000000000601034f000000006706043c0000000005750436000000000025004b000013d30000c13d000000000004004b000013e40000613d000000000131034f0000000303400210000000000402043300000000043401cf000000000434022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f0000000000120435000000020100003915b91cd10000040f00000741020000410000000000120435000f000e0000002d000014410000013d000000000100001915b91cd10000040f00000741020000410000000000120435000009200100043d0000000b020000290000000000120435000009400100043d0000000a02000029000000000012043500000011010000290000006002000039000000000021043500000833010000410000000d0200002900000000001204350000000c0100002900000000010104330000001004000029000000000141001900000000010104330000001f011000390000081c02100197000008210020009c000014670000213d00000008010000290000000001010433000000000141001900000000010104330000001f011000390000081c011001970000030002200039000000000021001a0000158e0000413d0000000903000029000000000303043300000000034300190000000003030433000007790030009c000014750000213d00000000012100190000000502300210000000000012001a0000159c0000413d0000000001120019000000070200002900000000020204330000001004000029000000000242001900000000020204330000001f022000390000081c02200197000000000012001a000014830000413d000000000112001900000005020000290000000002020433000000000242001900000000020204330000001f022000390000081c02200197000000000012001a000015aa0000413d000000000112001900000000020004140000073b0020009c0000073b02008041000000c00220021000000064011000390000073b0010009c0000073b010080410000006001100210000000000112019f00000006011001af0000000f0200002915b91cd60000040f001000000002001d00110000000103530000000000010355000000020100003915b91cd10000040f000000110300035f00000741020000410000000000120435000000100100002900000001001001900000156b0000613d0000080a0100004100000000001004430000800101000039000000040010044300000000010004140000073b0010009c0000073b01008041000000c0011002100000080b011001c70000800a0200003915ba1cdb0000040f0000000100200190000015b90000613d000000000101043b000000030110006c000014fb0000413d000000040110006c000015090000413d000014650000613d000007eb02000041000000000020043f0000800102000039000000040020043f0000000f02000029000000240020043f000000440010043f00000000010004140000073b0010009c0000073b01008041000000c001100210000007bf011001c70000800a0200003915ba1cd60000040f000000000001035500000001002001900000155d0000613d0000000101000039000000000001042d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d601000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f0000077b01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f000007d301000041000000450010043f000007470100004100001ce800010430000007430240019700000824022001c7000000000020043f0000001f0430018f0000074c0530019800000001025001bf000015310000613d0000000106000039000000000701034f000000007807043c0000000006860436000000000026004b0000149a0000c13d000015310000013d0000083601000041000000000010043f000007bc0100004100001ce800010430000000000200043d0000074302200197000007dd022001c7000000000020043f00000060051002700000001f0350018f0000074c0450019800000001024001bf000014e80000613d0000000106000039000000000701034f000000007807043c0000000006860436000000000026004b000014ae0000c13d000014e80000013d000000000100043d0000074301100197000007dd011001c7000000000010043f0000001f0320018f0000074c0420019800000001014001bf000014c10000613d0000000105000039000000000608034f000000006706043c0000000005750436000000000015004b000014bd0000c13d000000000003004b000014ce0000613d000000000448034f0000000303300210000000000501043300000000053501cf000000000535022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000353019f00000000003104350000074d0020009c0000074d0200804100000060012002100000074e0110009a00001ce800010430000000000100043d000007430110019700000828011001c7000000000010043f000007bc0100004100001ce800010430000000000200043d0000074302200197000007dd022001c7000000000020043f00000060051002700000001f0350018f0000074c0450019800000001024001bf0000000108000039000014e80000613d000000000601034f000000006706043c0000000008780436000000000028004b000014e40000c13d0000073b05500197000000000003004b000014f60000613d000000000141034f0000000303300210000000000402043300000000043401cf000000000434022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f00000000001204350000074d0050009c0000074d0500804100000060015002100000074e0110009a00001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000083501000041000000450010043f000007470100004100001ce800010430000000000100043d00000743011001970000078c011001c7000000000010043f000007bc0100004100001ce800010430000000000100043d000007430110019700000763011001c7000000000010043f00000060043002700000001f0240018f0000074c0340019800000001013001bf00000001070000390000151e0000613d0000000f0500035f000000005605043c0000000007670436000000000017004b0000151a0000c13d0000073b04400197000000000002004b000015890000613d0000000f0500035f0000157e0000013d000000000200043d00000743022001970000082e022001c7000000000020043f0000001f0430018f0000074c0530019800000001025001bf0000000108000039000015310000613d000000000601034f000000006706043c0000000008780436000000000028004b0000152d0000c13d000000000004004b0000153e0000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000074d0030009c0000074d0300804100000060013002100000074e0110009a00001ce800010430000000000100043d00000743011001970000154c0000013d000007430120019700000830011001c7000000000010043f000007bc0100004100001ce800010430000007430120019700000831011001c7000000000010043f000007bc0100004100001ce800010430000007430140019700000832011001c7000000000010043f000007bc0100004100001ce80001043000000832014001c7000000000010043f000007bc0100004100001ce80001043000000831014001c7000000000010043f000007bc0100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001001000039000000250010043f000007ec01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000834011001c7000000000010043f00000060043002700000001f0240018f0000074c0340019800000001013001bf0000157a0000613d0000000105000039000000110600035f000000006706043c0000000005750436000000000015004b000015760000c13d0000073b04400197000000000002004b000015890000613d000000110500035f000000000335034f0000000302200210000000000501043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002104350000074d0040009c0000074d0400804100000060014002100000074e0110009a00001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f000007d501000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d401000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d201000041000000450010043f000007470100004100001ce80001043015b91cd40000040f15ba1cd40000040f15bb1cd40000040f000000000001042f0006000000000002000300000004001d000200000003001d000400000002001d000500000001001d00000040011000390000000001010433000600000001001d0000083801000041174e1cd10000040f0000073f0200004100000000001204350000000001000019174e1cd10000040f000007400200004100000000001204350000000501000039174e1cd10000040f0000074102000041000000000012043500000006010000290000076d0010009c000016000000413d0000077601000041000000000010043f0000000601000029000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800202000039174f1cdb0000040f00000060031002700000073b03300197000000200030008c00000020030080390000001f0430018f0000002003300190000015eb0000613d000000000501034f0000000006000019000000005705043c0000000006760436000000000036004b000015e70000c13d000000000004004b000015f80000613d000000000531034f0000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f000000000043043500000000000103550000000100200190000015fd0000c13d00000000010004140000000000100420000000000100043d000000000001004b000016db0000613d000007e701000041000000000010043f0000800101000039000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800b02000039174f1cd60000040f000000000001035500000001002001900000161c0000c13d000007e801000041174d1cd10000040f0000073f0200004100000000001204350000800101000039174d1cd10000040f000007400200004100000000001204350000000501000039174d1cd10000040f000007410200004100000000001204350000000001000414000000000010042000000005050000290000002001500039000000400250008a000009200300043d0000000000320435000000200250008a000009400300043d0000000000320435000000600250008a0000083903000041000000000032043500000060020000390000000000250435000001e0025000390000000002020433000000000212001900000000020204330000001f032000390000081c04300197000008200040009c000016f70000813d00000200035000390000000003030433000000000313001900000000030304330000001f033000390000081c033001970000030004400039000000000043001a000017210000413d0000022005500039000000000505043300000000051500190000000005050433000007630050009c000017050000813d00000000034300190000000504500210000000000034001a0000172f0000413d0000000003340019000000050500002900000240045000390000000004040433000000000414001900000000040404330000001f044000390000081c04400197000000000034001a000017130000413d000000000334001900000260045000390000000004040433000000000114001900000000010104330000001f011000390000081c01100197000000000031001a0000173d0000413d0000000001310019000000440250008a0000073b0020009c0000073b02008041000000400220021000000064011000390000073b0010009c0000073b010080410000006001100210000000000121019f00000000020004140000073b0020009c0000073b02008041000000c002200210000000000112019f0000000602000029174f1cd60000040f00060000000103530000000000010355000500000002001d0000000100200190000016820000c13d0000079f01000041174c1cd10000040f00060006000003630000073f0200004100000000001204350000000601000029174c1cd10000040f000007400200004100000000001204350000000501000039174c1cd10000040f000007410200004100000000001204350000000601000029174d1cd10000040f0000073f0200004100000000001204350000000601000039174d1cd10000040f000007410200004100000000001204350000000001000414000100000001001d174c1ccf0000040f000600000001001d000007b101000041174b1cd10000040f0000073f0200004100000000001204350000000401000029174b1cd10000040f000007400200004100000000001204350000000501000039174b1cd10000040f00000741020000410000000000120435000007b201000041174b1cd10000040f00000006020000290006073b0020019b0000073f0200004100000000001204350000000601000029174b1cd10000040f000007400200004100000000001204350000000501000039174b1cd10000040f000007410200004100000000001204350000000302000029000000000002004b000016b80000613d0000000603000029000000040130006c000000000100401900060000002100ad00000006022000f9000000000012004b000016b90000613d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001b01000039000000250010043f000007b301000041000000450010043f000007470100004100001ce800010430000600000000001d000007e201000041174d1cd10000040f0000073f0200004100000000001204350000000601000029174d1cd10000040f000007400200004100000000001204350000000501000039174d1cd10000040f0000074102000041000000000012043500000001020000290000000201200029000000060010006c000016cb0000813d000000000100041400000000001004200000083a01000041174e1cd10000040f000000050200002900060001002001930000073f0200004100000000001204350000000601000029174e1cd10000040f000007400200004100000000001204350000000501000039174e1cd10000040f000007410200004100000000001204350000000601000029000000000001042d000007e701000041000000000010043f0000000601000029000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800b02000039174f1cd60000040f000000000001035500000001002001900000161c0000c13d000007e801000041174d1cd10000040f0000073f0200004100000000001204350000000601000029174d1cd10000040f000007400200004100000000001204350000000501000039174d1cd10000040f0000074102000041000000000012043500000000010004140000161b0000013d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d601000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f0000077b01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f000007d301000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f000007d501000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d401000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d201000041000000450010043f000007470100004100001ce800010430174c1cd40000040f174d1cd40000040f174e1cd40000040f174f1cd40000040f17501cd40000040f000000000001042f000a000000000002000200000004001d000100000003001d000500000002001d00000752020000410000000002020433000a00000002001d00000020021000390000022001100039000300000001001d0000000001010433000400000002001d0000000001210019000000200210003900000000010104330000000501100210000800000012001d000000080020006c000018490000813d0000000001020019000017700000013d0000074102000041000000000012043500000000010004140000000000100420000000000100043d000000060010006c000019270000c13d0000000901000029000000080010006c000018490000813d0000000012010434000900000001001d0000000a010000290000000031010434000000000012004b0000176d0000c13d000700000003001d0000083b01000041000000000010043f000600000002001d000000040020043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c700008004020000391a061cd60000040f00000060031002700000073b04300197000000200040008c000000200400803900000020034001900000178e0000613d000000000501034f0000000006000019000000005705043c0000000006760436000000000036004b0000178a0000c13d0000001f044001900000179b0000613d000000000531034f0000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f000000000043043500000000000103550000000100200190000017a00000c13d00000000010004140000000000100420000000000100043d000000000001004b0000000703000029000019860000c13d0000000a020000290000081c0020009c000019500000813d0000083d0100004100000000001304350000084b0020009c0000195c0000813d0000003c012000390000004002200039000000000012004b000019420000413d0000000003020433000000000023001a000019f50000413d00000000042300190000083e0040009c000018ef0000213d00000000030404330000001f05300190000017c90000613d0000001f033000390000081c06300197000000200360003a000019190000613d000000000043001a000019d90000413d000000030550021000000100055000890000081d0550021f0000081d055001670000000006460019000000000606043300000000005601700000190b0000c13d00000000034300190000000a05000029000017d00000013d0000081c0030009c000019a10000813d00000000033400190000002003300039000000000043004b0000000a05000029000019930000413d0000008005500039000000000025004b000019340000413d000000000054004b000018fd0000c13d0000000a040000290000006004400039000000000024004b000019780000413d0000000004040433000000000024001a000019e70000413d00000000022400190000083e0020009c000018ef0000213d000000000023004b000018fd0000c13d00000000020304330000001f04200190000017f40000613d0000001f022000390000081c05200197000000200250003a000019190000613d000000000032001a000019d90000413d000000030440021000000100044000890000081d0440021f0000081d044001670000000005350019000000000505043300000000004501700000190b0000c13d0000000002320019000017fa0000013d0000081e0020009c000019a10000213d00000000022300190000002002200039000000000032004b000019930000413d000a00000002001d0000083e0020009c000018ef0000213d0000000a0210006b0000196a0000413d0000073b0020009c0000073b0200804100000060022002100000073b0010009c0000073b010080410000004001100210000000000112019f00000000020004140000073b0020009c0000073b02008041000000c002200210000000000112019f0000800e020000391a051cd60000040f000700000001001d00000060031002700000073b04300197000000200040008c000000200400803900000020034001900000181a0000613d000000000501034f0000000006000019000000005705043c0000000006760436000000000036004b000018160000c13d0000001f04400190000018270000613d000000000531034f0000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f0000000000430435000000000001035500000001002001900000176a0000c13d00000840010000411a0f1cd10000040f0000073f02000041000000000012043500000000010000191a0f1cd10000040f0000074002000041000000000012043500000005010000391a0f1cd10000040f000007410200004100000000001204350000079f010000411a081cd10000040f0000073f02000041000000000012043500000007010000291a081cd10000040f0000074002000041000000000012043500000005010000391a081cd10000040f0000074102000041000000000012043500000007010000291a0f1cd10000040f0000073f02000041000000000012043500000006010000391a0f1cd10000040f000017660000013d000007a1010000411a0b1cd10000040f0000073f02000041000000000012043500000000010000191a0b1cd10000040f0000074002000041000000000012043500000005010000391a0b1cd10000040f000007410200004100000000001204350000000301000029000000000101043300000004011000290000000002010433000000410020008c000019af0000813d000007a203000041000009600030043f0000000103000039000009800030043f0000004003000039000009a00030043f000007ff0320018f000000000032004b000019bd0000c13d000000050220021000000000032100190000002003300039000000000013004b000019cb0000413d0000186f0000a13d000009c00400003900000000150104340000000004540436000000000031004b0000186b0000413d00000000010004140000073b0010009c0000073b01008041000000c001100210000007a40020009c000007a4020080410000006002200210000000000112019f000007a50110009a00008004020000391a0e1cd60000040f000900000002001d00080000000103530000000000010355000007a6010000411a0b1cd10000040f0000073f0200004100000000001204350000000901000029000000010110018f000900000001001d1a0b1cd10000040f0000074002000041000000000012043500000005010000391a0b1cd10000040f00000741020000410000000000120435000000090000006b000018a40000c13d0000079f010000411a071cd10000040f0000073f020000410000000000120435000900080000002d00000008010000291a071cd10000040f0000074002000041000000000012043500000005010000391a071cd10000040f0000074102000041000000000012043500000009010000291a0b1cd10000040f0000073f02000041000000000012043500000006010000391a0b1cd10000040f00000741020000410000000000120435000000000100041400000000001004200000000001000414000800000001001d1a071ccf0000040f000900000001001d000007b1010000411a031cd10000040f0000073f02000041000000000012043500000005010000291a031cd10000040f0000074002000041000000000012043500000005010000391a031cd10000040f00000741020000410000000000120435000007b2010000411a031cd10000040f00000009020000290009073b0020019b0000073f02000041000000000012043500000009010000291a031cd10000040f0000074002000041000000000012043500000005010000391a031cd10000040f000007410200004100000000001204350000000202000029000000000002004b000018da0000613d0000000903000029000000050130006c000000000100401900090000002100ad00000009022000f9000000000012004b000018db0000613d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001b01000039000000250010043f000007b301000041000000450010043f000007470100004100001ce800010430000900000000001d000007e2010000411a0b1cd10000040f0000073f02000041000000000012043500000009010000291a0b1cd10000040f0000074002000041000000000012043500000005010000391a0b1cd10000040f0000074102000041000000000012043500000008020000290000000101200029000000090010006c000018ed0000813d000000000100041400000000001004200000000a01000029000000000001042d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001801000039000000250010043f0000084601000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001e01000039000000250010043f0000083f01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001201000039000000250010043f0000076701000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000076901000041000000450010043f000007470100004100001ce800010430000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001601000039000000250010043f0000084101000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000084501000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000084801000041000000450010043f000007470100004100001ce8000104300000074401000041000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000084a01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000084901000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f0000084201000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000084401000041000000450010043f000007470100004100001ce800010430000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001101000039000000250010043f0000083c01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007ff01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000080001000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001501000039000000250010043f000007cd01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000201000039000000250010043f000007a301000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007cc01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000076801000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000084301000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000084701000041000000450010043f000007470100004100001ce8000104301a071cd40000040f00001a140000013d000000000001042f000000000001042f1a0b1cd40000040f1a0a1cd40000040f00001a140000013d00001a0f0000013d1a0c1cd40000040f1a0d1cd40000040f1a0e1cd40000040f000000000001042f1a111cd40000040f00001a140000013d1a131cd40000040f00001a140000013d1a141cd40000040f000000000001042f0006000000000002000100000003001d000200000002001d000000c0021000390000000002020433000500000002001d000400000001001d00000040011000390000000001010433000600000001001d0000084c010000411b781cd10000040f0000073f02000041000000000012043500000000010000191b781cd10000040f0000074002000041000000000012043500000005010000391b781cd10000040f000007410200004100000000001204350000084d010000411b781cd10000040f0000073f02000041000000000012043500000006010000291b781cd10000040f0000074002000041000000000012043500000005010000391b781cd10000040f000007410200004100000000001204350000084e010000411b781cd10000040f0000073f02000041000000000012043500000005010000291b781cd10000040f0000074002000041000000000012043500000005010000391b781cd10000040f000007410200004100000000001204350000084f010000411b781cd10000040f0000073f02000041000000000012043500000006010000291b781cd10000040f0000074002000041000000000012043500000005010000391b781cd10000040f00000741020000410000000000120435000007e701000041000000000010043f0000000601000029000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800b020000391b791cd60000040f0000000000010355000000010020019000001a6b0000c13d000007e8010000411b771cd10000040f0000073f02000041000000000012043500000006010000291b771cd10000040f0000074002000041000000000012043500000005010000391b771cd10000040f000007410200004100000000001204350000000001000414000000000010042000000850010000411b781cd10000040f0000073f02000041000000000012043500000005010000291b781cd10000040f0000074002000041000000000012043500000005010000391b781cd10000040f000007410200004100000000001204350000080801000041000000000010043f0000000501000029000000040010043f00000000010004140000073b0010009c0000073b01008041000000c00110021000000777011001c70000800b020000391b791cd60000040f0000000000010355000000010020019000001a930000c13d00000809010000411b771cd10000040f0000073f02000041000000000012043500000005010000291b771cd10000040f0000074002000041000000000012043500000005010000391b771cd10000040f000007410200004100000000001204350000000001000414000000000010042000000851010000411b781cd10000040f0000073f02000041000000000012043500000000010000191b781cd10000040f0000074002000041000000000012043500000005010000391b781cd10000040f0000074102000041000000000012043500000004010000290000014001100039000300000001001d0000000001010433000000000001004b00001ab60000613d000007b702000041000000000020043f0000000602000029000000040020043f000000240010043f00000000010004140000073b0010009c0000073b01008041000000c0011002100000079a011001c70000800a020000391b7a1cd60000040f0000000000010355000000010020019000001ab60000c13d00000000010004140000000000100420000000040100002900000060011000390000000001010433000500000001001d00000852010000411b771cd10000040f0000073f02000041000000000012043500000005010000291b771cd10000040f0000074002000041000000000012043500000005010000391b771cd10000040f0000074102000041000000000012043500000003010000290000000001010433000300000001001d00000853010000411b771cd10000040f0000073f02000041000000000012043500000003010000291b771cd10000040f0000074002000041000000000012043500000005010000391b771cd10000040f0000000404000029000000200240003900000741030000410000000000130435000001e0014000390000000001010433000000000112001900000020021000390000000002020433000000e002200270000008540020009c00000000030000390000000103006039000008550020009c00000001033061bf000008560020009c00000000040000390000000104006039000008570020009c00000001044061bf000000000234019f0000000504000029000080060040008c00000000030000390000000103006039000000000223016f0000004003100210000008580330009a00000000010104330000006005100210000000000335019f000000030010008c00000000010000390000000101002039000000000521016f0000000001000414000000c001100210000000000113019f000007dd011001c7000080090200003900000003030000290000000006000019000000060d0000291b781ce00000040f00050000000103530000000000010355000600000002001d000000010020019000001b190000c13d0000079f010000411b761cd10000040f00050005000003630000073f02000041000000000012043500000005010000291b761cd10000040f0000074002000041000000000012043500000005010000391b761cd10000040f0000074102000041000000000012043500000005010000291b771cd10000040f0000073f02000041000000000012043500000006010000391b771cd10000040f0000074102000041000000000012043500000859010000411b781cd10000040f000000060200002900060001002001930000073f02000041000000000012043500000006010000291b781cd10000040f0000074002000041000000000012043500000005010000391b781cd10000040f00000741020000410000000000120435000000060000006b00001b2b0000c13d000000000100041400000000001004200000000001000414000400000001001d1b761ccf0000040f000500000001001d000007b1010000411b751cd10000040f0000073f02000041000000000012043500000002010000291b751cd10000040f0000074002000041000000000012043500000005010000391b751cd10000040f00000741020000410000000000120435000007b2010000411b751cd10000040f00000005020000290005073b0020019b0000073f02000041000000000012043500000005010000291b751cd10000040f0000074002000041000000000012043500000005010000391b751cd10000040f000007410200004100000000001204350000000102000029000000000002004b00001b610000613d0000000503000029000000020130006c000000000100401900050000002100ad00000005022000f9000000000012004b00001b620000613d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001b01000039000000250010043f000007b301000041000000450010043f000007470100004100001ce800010430000500000000001d000007e2010000411b771cd10000040f0000073f02000041000000000012043500000005010000291b771cd10000040f0000074002000041000000000012043500000005010000391b771cd10000040f000007410200004100000000001204350000000502000029000000040020006b00001b730000813d000000000100041400000000001004200000000601000029000000000001042d1b761cd40000040f1b771cd40000040f1b781cd40000040f1b791cd40000040f1b7a1cd40000040f000000000001042f0000085a010000411b8c1cd10000040f0000073f02000041000000000012043500000000010000191b8c1cd10000040f0000074002000041000000000012043500000005010000391b8c1cd10000040f0000074102000041000000000012043500000007010000391b8d1cd10000040f00000741020000410000000000120435000000000001042d1b8d1cd40000040f1b8e1cd40000040f000000000001042f0006000000000002000400000007001d000500000006001d000600000005001d0000000005010019000005000100043d0000001f011000390000081c091001970000002008200039000000e40690003900000000016800490000085b0a0000410000000000a10435000000040a100039000000c00b0000390000000000ba0435000000000aa80049000000240b1000390000000000ab0435000000440a100039000009200b00043d0000000000ba0435000000a40a100039000009400b00043d00000000004a04350000008404100039000000000034043500000064031000390000000000b304350000052003900039000005000030008c00001c480000413d0000002004900039000000c40910003900001bb80000613d000005000a000039000000000b09001900000000ac0a0434000000000bcb043600000000003a004b00001bb40000413d0000000003940019000000000083004b00001c560000c13d000001e0032000390000000003030433000000000383001900000000030304330000001f033000390000081c04300197000008200040009c00001c630000813d00000200032000390000000003030433000000000383001900000000030304330000001f033000390000081c033001970000030004400039000000000043001a00001c9b0000413d0000022009200039000000000909043300000000098900190000000009090433000007630090009c00001c710000813d00000000034300190000000504900210000000000034001a00001ca90000413d000000000334001900000240042000390000000004040433000000000484001900000000040404330000001f044000390000081c04400197000000000034001a00001c7f0000413d000000000334001900000260022000390000000002020433000000000282001900000000020204330000001f022000390000081c02200197000000000032001a00001cb70000413d0000000002320019000000000062001a00001c8d0000413d00000000026200190000073b0010009c0000073b0100804100000040011002100000073b0020009c0000073b020080410000006002200210000000000112019f00000000020004140000073b0020009c0000073b02008041000000c002200210000000000112019f00000000020500191ce61cd60000040f000200000002001d00000000000103550000000001000414000100000001001d1cc71ccf0000040f000300000001001d000007b1010000411cc51cd10000040f0000073f02000041000000000012043500000006010000291cc51cd10000040f0000074002000041000000000012043500000005010000391cc51cd10000040f00000741020000410000000000120435000007b2010000411cc51cd10000040f00000003020000290003073b0020019b0000073f02000041000000000012043500000003010000291cc51cd10000040f0000074002000041000000000012043500000005010000391cc51cd10000040f000007410200004100000000001204350000000502000029000000000002004b00001c320000613d0000000303000029000000060130006c000000000100401900060000002100ad00000006022000f9000000000012004b00001c330000613d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000001b01000039000000250010043f000007b301000041000000450010043f000007470100004100001ce800010430000600000000001d000007e2010000411cc91cd10000040f0000073f02000041000000000012043500000006010000291cc91cd10000040f0000074002000041000000000012043500000005010000391cc91cd10000040f0000074102000041000000000012043500000001020000290000000401200029000000060010006c00001c450000813d000000000100041400000000001004200000000201000029000000010110018f000000000001042d000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007cc01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f000000250010043f0000085c01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d601000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f0000077b01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f000007d301000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f0000085d01000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000401000039000000250010043f000007d501000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d401000041000000450010043f000007470100004100001ce800010430000000000100043d000007430110019700000744011001c7000000000010043f0000074501000041000000010010043f0000002001000039000000050010043f0000000301000039000000250010043f000007d201000041000000450010043f000007470100004100001ce8000104301cc71cd40000040f00001cce0000013d1cc91cd40000040f00001cce0000013d1ccb1cd40000040f00001cce0000013d1ccd1cd40000040f00001cce0000013d1cce1cd40000040f000000000001042f0000000001000413000000000001042d00000000020004160000000001120019000000000001042d0000000001000019000000000001042f00001cd9002104210000000102000039000000000001042d0000000002000019000000000001042d00001cde002104230000000102000039000000000001042d0000000002000019000000000001042d000000000f0d001900001ce4002104290000000102000039000000000001042d0000000002000019000000000001042d00001ce60000043200001ce70001042e00001ce80001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff62617365466565000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c8a0400000000000000000000000000000000000000000000000000000000003c8a0600000000000000000000000000000000000000000000000000000000003c8a0a045585045435445445f424153455f46454500000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff110000000000000000000000000000000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000006261736546656520696e636f6e73697374656e74000000000000000000000000000000000000000000000000000000000000006500000000000000000000000002fa57790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000004661696c656420746f20736574206e65772062617463683a2000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffe000000000000000000000000000000000000000000000000000000000fffffffeffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000032419a000000000000000000000000000000000000000000000000000000000031a50a000000000000000000000000000000000000000000000000000000000002240800000000000000000000000000000000000000000000000000000000000224060c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470000000000000000000000000000000000000000000000000000000000082406000000000000000000000000000000000000000000000000000000000008240800000000000000000000000000000000000000000000000000000000003c8a0c07478507472000000000000000000000000000000000000000000000000000000657865637574650000000000000000000000000000000000000000000000000063757272656e74457870656374656454784f66667365740000000000000000007478446174614f6666736574000000000000000000000000000000000000000054782064617461206f666673657420697320696e636f72726563740000000000456e636f64696e67206f66667365740000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000100000000000000000000000000000000456e636f64696e67206461746100000000000000000000000000000000000000456e636f64696e67207369676e61747572650000000000000000000000000000456e636f64696e6720666163746f72794465707300000000000000000000000008000000000000000000000000000000000000000000000000000000000000006c6f700000000000000000000000000000000000000000000000000000000000456e636f64696e67207061796d6173746572496e707574000000000000000000456e636f64696e6720726573657276656444796e616d6963000000000000000062616420627974657320656e636f64696e670000000000000000000000000000647a700000000000000000000000000000000000000000000000000000000000647a6100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c8a041fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc375fde6e6f6e2d656d70747920726573657276656444796e616d69630000000000000000000000000000000000000000000000000000000000000000000000000100007061796d617374657220696e206b65726e656c207370616365000000000000007061796d6173746572496e707574206e6f6e207a65726f00000000000000000066726f6d20696e206b65726e656c207370616365000000000000000000000000726573657276656430206e6f6e207a65726f0000000000000000000000000000726573657276656432206e6f6e207a65726f0000000000000000000000000000726573657276656433206e6f6e207a65726f00000000000000000000000000004761732070657220707562646174612069732077726f6e6700000000000000007061796d6173746572206e6f6e207a65726f00000000000000000000000000004de2e4680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004f6e6c79204549502d3731322063616e20757365206e6f6e2d454f410000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4549503135353920706172616d732077726f6e6700000000000000000000000066776f7000000000000000000000000000000000000000000000000000000000666163746f72792064657073206e6f6e207a65726f000000000000000000000065746843616c6c00000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff147c0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff147e0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14800fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1482053657474696e67206e6577204c3220626c6f636b3a200000000000000000000006bed0360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a40000000000000000000000004661696c656420746f20736574206e6577204c3220626c6f636b3a200000000019000000000000000000000000000000000000000000000000000000000000007573657250726f76696465645075626461746150726963653a00000000000000676173506572507562646174613a00000000000000000000000000000000000050726f746f636f6c2075706772616465207478206e6f74206669727374000000484153485f4f4646534554000000000000000000000000000000000000000000444154415f4c454e4754480000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62a200000000000000000000000000000000000000000000000000000000004c4b400fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0c20696f7400000000000000000000000000000000000000000000000000000000007478546f74616c4761734c696d6974000000000000000000000000000000000072657175697265644f76657268656164000000000000000000000000000000006f70657261746f724f76657268656164466f725472616e73616374696f6e00000000000000000000000000000000000000000000000000000000000000028cf57177000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd730b666a0000000000000000000000000000000000000000000000000000000000006761734265666f72655072657061726174696f6e000000000000000000000000a225efcb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000073657450756264617461496e666f206661696c656400000000000000000000006c31206861736800000000000000000000000000000000000000000000000000417070656e64696e6720747820746f204c3220626c6f636b000000000000000006e7517b0000000000000000000000000000000000000000000000000000000072657475726e646174617074720000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000007374617274696e6720666163746f72792064657073000000000000000000000000000000000000000000000000000000000000000000000000000000e516761e616700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff9bffffffffffffffffffffffffffffffffffffff9bfffff6840000000000000000666163746f7279206465707320737563636573730000000000000000000000001200000000000000000000000000000000000000000000000000000000000000676173557365644f6e5072657061726174696f6e000000000000000000000000706f610000000000000000000000000000000000000000000000000000000000676173466f72457865637574696f6e000000000000000000000000000000000063616c6c416269000000000000000000000000000000000000000000000000006761732829000000000000000000000000000000000000000000000000000000676173546f50726f766964650000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0bdc0657865637574696f6e20726573756c743a207375636365737300000000000000657865637574696f6e20726573756c743a207074720000000000000000000000626173655075626461746100000000000000000000000000000000000000000063757272656e74507562646174610000000000000000000000000000000000006d756c3a20676574457267735370656e74466f725075626461746100000000000000000000000000000000000000000000000000000000000000000003c8a0806d6e6b0000000000000000000000000000000000000000000000000000000000726566756e64286761732900000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000079736c00000000000000000000000000000000000000000000000000000000006b70610000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff1700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000053656e64206d65737361676520746f204c31000000000000000000000000000056079ac80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004661696c656420746f2073656e64204c314d657373656e676572204c324c6f671c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000040000000000000000000000000766a69000000000000000000000000000000000000000000000000000000000055706772616465207478206661696c65640000000000000000000000000000004c313a20726566756e64476173203e206761734c696d69740000000000000000736166656164643a20706f74656e7469616c526566756e643100000000000000736166656164643a20706f74656e7469616c526566756e643200000000000000636a7100000000000000000000000000000000000000000000000000000000006465706f73697465642065746820746f6f206c6f7700000000000000000000006f6c0000000000000000000000000000000000000000000000000000000000007870610000000000000000000000000000000000000000000000000000000000636b610000000000000000000000000000000000000000000000000000000000746f6f206d616e7920666163746f72792064657073000000000000000000000071657600000000000000000000000000000000000000000000000000000000004f70657261746f722773206f7665726865616420746f6f2068696768000000004f7665726865616420686967686572207468616e206761734c696d69740000006c7368000000000000000000000000000000000000000000000000000000000073687900000000000000000000000000000000000000000000000000000000007470697700000000000000000000000000000000000000000000000000000000736963000000000000000000000000000000000000000000000000000000000071777161000000000000000000000000000000000000000000000000000000006173780000000000000000000000000000000000000000000000000000000000626173655370656e7400000000000000000000000000000000000000000000006ef25c3ab4fb9cba75ff1971e3f261040c39b067df172dd5185087fc5553a5b602000002000000000000000000000000000000040000000000000000000000006761734c696d6974466f725478000000000000000000000000000000000000006761734265666f726556616c696461746500000000000000000000000000000000000000000000000000000000000000000000000000000000000000ebe4a3d701000000000000000000000000000000000000000000000000000000000000007361766554784861736865733a2072657475726e6461746120696e76616c696476616c6964617465414249000000000000000000000000000000000000000000697356616c69640000000000000000000000000000000000000000000000000067617355736564466f7256616c696461746500000000000000000000000000007370656e7445726773507562646174610000000000000000000000000000000076616c69646174696f6e2066696e697368656400000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0bdbf6e6f746966795375636365737300000000000000000000000000000000000000657865637574696f6e2066696e69736865640000000000000000000000000000a851ae78000000000000000000000000000000000000000000000000000000004661696c656420746f207365742074784f726967696e000000000000000000006a6b6c00000000000000000000000000000000000000000000000000000000006664660000000000000000000000000000000000000000000000000000000000579952fc000000000000000000000000000000000000000000000000000000004661696c656420746f20726566756e640000000000000000000000000000000030e5ccbd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000004661696c656420746f2063616c6c2053797374656d20436f6e746578740000001d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032414a0726566756e64496e476173206973206e6f742075696e74363400000000000000726566756e64496e476173203e206761734c696d697400000000000000000000130000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000556e6b6e6f776e207478207479706500000000000000000000000000000000004c4153545f465245455f534c4f540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c8a02063757272656e74457870656374656454784f666673657420746f6f206869676873700000000000000000000000000000000000000000000000000000000000006173610000000000000000000000000000000000000000000000000000000000616f700000000000000000000000000000000000000000000000000000000000706f6c0000000000000000000000000000000000000000000000000000000000456e636f64696e67207061796d61737465720000000000000000000000000000456e636f64696e67206d61785072696f72697479466565506572476173000000456e636f64696e67206d61784665655065724761730000000000000000000000456e636f64696e672067617350657250756264617461427974654c696d697400456e636f64696e67206761734c696d6974000000000000000000000000000000456e636f64696e6720746f000000000000000000000000000000000000000000456e636f64696e672066726f6d00000000000000000000000000000000000000bf1fe420000000000000000000000000000000000000000000000000000000004661696c656420746f20736574206761732070726963650000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000003635f3e6000000000000000000000000000000000000000000000000000000005075626c697368696e672074696d657374616d70206461746120746f204c31007c9bd1f3000000000000000000000000000000000000000000000000000000004661696c6564207075626c6973682074696d657374616d7020746f204c3100001a000000000000000000000000000000000000000000000000000000000000005075626c697368696e67206261746368206461746120746f204c3100000000000000000000000000000000000000000000000000000000000000000086b7f85600000000000000000000000000000000000000000000000000000000008240a000000000000000000000000000000000000000000000000000000000008240e06f666673657420666f72204c314d657373656e676572206973206e6f7420363400000000000000000000000000000000000000000000000000000000008241000000000000000000000000000000000000000000008240bc00000000000000004661696c656420746f207075626c697368204c324c6f677320646174610000001b000000000000000000000000000000000000000000000000000000000000004c3220666169722067617320707269636520746f6f206869676800000000000046616972207075626461746120707269636520746f6f20686967680000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd00fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcff5374617274696e672076616c69646174696f6e00000000000000000000000000bb0fd6100000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000006ee1dc20000000000000000000000000000000000000000000000000000000007072652d76616c6964617465000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000202bcce71500000000000000000000000000000000000000000000000000000000000000202bcce70000000000000000000000000000000000000000000000000000000054782076616c69646174696f6e20636f6d706c657465000000000000000000006c616c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a28c1aee00000000000000000000000000000000000000000000000000000000038a24bc0900000000000000000000000000000000000000000000000000000000000000038a24bc0000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e2f318e3070000000000000000000000000000000000000000000000000000000000000071737800000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbdf457865637574696e67204c32207478000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000df9c1589457865637574696e67204c3220726574000000000000000000000000000000004c6314f000000000000000000000000000000000000000000000000000000000696e76616c69642072657075626c69736800000000000000000000000000000000000000000000000000000000000000000000000000000000000000f5e69a470000000000000000000000000000000000000000000000000000000000823e60436f6d7072657373696f6e2063616c6c6461746120696e636f72726563740000636f6d70726573736f722063616c6c206661696c65640000000000000000000062797465636f64654861736820696e636f727265637400000000000000000000787177660000000000000000000000000000000000000000000000000000000076627400000000000000000000000000000000000000000000000000000000006577710000000000000000000000000000000000000000000000000000000000767470000000000000000000000000000000000000000000000000000000000063616c6c64617461456e636f64696e6720746f6f206269670000000000000000767472000000000000000000000000000000000000000000000000000000000076747500000000000000000000000000000000000000000000000000000000007674790000000000000000000000000000000000000000000000000000000000766d740000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc4457865637574696e67204c31207478000000000000000000000000000000000066726f6d00000000000000000000000000000000000000000000000000000000676173507269636500000000000000000000000000000000000000000000000073657474696e67207478206f726967696e00000000000000000000000000000073657474696e6720676173207072696365000000000000000000000000000000657865637574696f6e20697473656c6600000000000000000000000000000000746f00000000000000000000000000000000000000000000000000000000000076616c7565000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000003cda335100000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535bffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000457865637574696e67204c3120726574000000000000000000000000000000005a4b53594e435f43415443485f4e4541525f43414c4c00000000000000000000817b17f000000000000000000000000000000000000000000000000000000000706f73744f703a2070747220213d20696e6e65725478446174614f66667365746a697100000000000000000000000000000000000000000000000000000000006ed6e65bcbd304a5dcbb258f9d591cd1664a098ae4b7a2536c8942c9f4471d92", "blockHash": "0x8008b61c2d767fca5c705f9bc268e2912c29e77855709137a81acc30db6e3a61", @@ -2749,7 +2749,7 @@ "address": "0xc9f20fc268fc3e0e597660550033bf2c24218fd8", "topics": [ "0x00e403ec52d56843d21d3a103d6e0df67a220869cea503706fcd690e61bce9ca", - "0x010005f72e443c94460f4583fb38ef5d0c5cd9897021c41df840f91465c0392e" + "0x010005f76ff9047aa9a0caabf27b4d40c44bafa64cbcda4bb85104a46fc6210c" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000bee00012000000000002001100000000000200000060071002700000059b06700197000100000061035500020000006103550003000000610355000400000061035500050000006103550006000000610355000700000061035500080000006103550009000000610355000a000000610355000b000000610355000c000000610355000d000000610355000e000000610355000f000000610355001000000061035500110000000103550000059b0070019d0000008003000039000000400030043f0000000100200190000000330000c13d000000040060008c0000003b0000413d000000000201043b000000e0022002700000059d0020009c0000004b0000a13d0000059e0020009c0000008f0000613d0000059f0020009c000000af0000613d000005a00020009c0000003d0000c13d000000240060008c000000de0000413d0000000401100370000000000101043b000005a30010009c000000de0000213d0000000001160049000000040110008a000005a40010009c000000de0000213d000002600010008c000006b30000813d000000de0000013d0000000001000416000000000001004b000000de0000c13d0000002001000039000001000010044300000120000004430000059c01000041000016670001042e000000000006004b000006b30000613d0000000001000412000005a5011001970000000002000410000000000021004b000006b30000c13d0000000001000411000080010010008c000006b30000c13d000005f101000041000000000010043f0000000101000039000000040010043f000005f2010000410000166800010430000005a10020009c000000d70000613d000f00000003001d000005a20020009c0000003d0000c13d000000640060008c000000de0000413d0000004402100370000000000302043b000005a30030009c000000de0000213d00000004043000390000000005460049000005a40050009c000000de0000213d000002600050008c000000de0000413d0000000002000411000080010020008c000006b30000c13d0000000002000412000005a5072001970000000002000410000000000027004b000006b30000c13d0000022403300039000000000731034f000000000707043b0000001f0550008a000005aa08700197000005aa09500197000000000a98013f000000000098004b0000000008000019000005aa08004041000000000057004b0000000005000019000005aa05008041000005aa00a0009c000000000805c019000000000008004b000000de0000c13d0000000005470019000000000451034f000000000404043b000005a30040009c000000de0000213d00000000064600490000002005500039000005aa07600197000005aa08500197000000000978013f000000000078004b0000000007000019000005aa07004041000000000065004b0000000006000019000005aa06002041000005aa0090009c000000000706c019000000000007004b000000de0000c13d000000030040008c000004160000213d000005cf01000041000000000010043f000005a8010000410000166800010430000000640060008c000000de0000413d0000004402100370000000000302043b000005a30030009c000000de0000213d00000004023000390000000008260049000005a40080009c000000de0000213d000002600080008c000000de0000413d0000000004000411000080010040008c000006b30000c13d0000000004000412000005a5044001970000000005000410000000000054004b000006b30000c13d0000004404300039000000000441034f0000012405300039000000000351034f000000000404043b000000000303043b000005a90030009c000001930000a13d000005e801000041000000000010043f000005a8010000410000166800010430000000640060008c000000de0000413d0000004402100370000000000202043b000005a30020009c000000de0000213d0000000003260049000000040330008a000005a40030009c000000de0000213d000002600030008c000000de0000413d0000000003000411000080010030008c000006b30000c13d0000000003000412000005a5033001970000000004000410000000000043004b000006b30000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000002004b000002020000c13d00000000010004140000059b0010009c0000059b01008041000000c0011002100000800102000039166616520000040f0000000100200190000006b30000c13d000005a701000041000000000010043f000005a8010000410000166800010430000000640060008c000000de0000413d0000004402100370000000000202043b000f00000002001d000005a30020009c000000e00000a13d000000000100001900001668000104300000000f02000029000e00040020003d0000000e0260006a000005a40020009c000000de0000213d000002600020008c000000de0000413d0000002402100370000000000202043b000d00000002001d0000000002000411000080010020008c000006b30000c13d0000000002000412000005a5022001970000000003000410000000000032004b000006b30000c13d0000000f02000029000c01040020003d0000000c01100360001100000000003d0000000002000414000000000101043b000005d003000041000000a00030043f000000a40010043f0000002401000039000000800010043f000000e001000039000000400010043f000000c001200210000005b101100197000005d1011001c700008003020000390000000003000019000000000400001900000000050000190000000006000019166616520000040f00000060031002700000059b083001970000001f03800039000005ba093001970000003f03900039000005bb04300197000000400600043d0000000003640019000000000043004b00000000040000390000000104004039000005a30030009c0000159c0000213d00000001004001900000159c0000c13d000000400030043f000000000786043600000011030003670000000004000031000000000543034f000000000009004b000001250000613d0000000009970019000000000a05034f000000000b07001900000000ac0a043c000000000bcb043600000000009b004b000001210000c13d0000001f0980018f000005b40a8001980000000008a700190000012f0000613d000000000b01034f000000000c07001900000000bd0b043c000000000cdc043600000000008c004b0000012b0000c13d000000000009004b0000013c0000613d0000000001a1034f0000000309900210000000000a080433000000000a9a01cf000000000a9a022f000000000101043b0000010009900089000000000191022f00000000019101cf0000000001a1019f00000000001804350000000100200190000002140000613d0000000d0000006b000014ee0000c13d0000000c01000029000001000110008a000000000113034f000000000101043b000000010010008c0000021d0000213d000000000001004b000004b30000613d000000010010008c000004ae0000c13d000005d201000041000000000010044300000000010004140000059b0010009c0000059b01008041000000c001100210000005d3011001c70000800b02000039166616570000040f0000000100200190000015320000613d000000400300043d000000000401043b000000800040008c0000059f0000413d000005a90040009c0000000001040019000000800110227000000000050000390000001005002039000005a30010009c00000008055021bf00000040011022700000059b0010009c00000004055021bf00000020011022700000ffff0010008c00000002055021bf0000001001102270000000ff0010008c00000001055020390000002102500039000005f4072001970000003f02700039000005f4012001970000000001130019000000000031004b00000000020000390000000102004039000005a30010009c0000159c0000213d00000001002001900000159c0000c13d000000400010043f0000000201500039000000000613043600000011010003670000000002000031000000000007004b000001830000613d0000000007760019000000000821034f0000000009060019000000008a08043c0000000009a90436000000000079004b0000017f0000c13d0000000007030433000000000007004b00000b600000613d0000000007060433000005d507700197000000f808500210000000000778019f000005d60770009a00000000007604350000000305500210000000f80550008900000000045401cf000000ff0050008c00000000040020190000002105300039000005ae0000013d000000a005500039000000000951034f000000000909043b0000001f0880008a000005aa0a900197000005aa0b800197000000000cba013f0000000000ba004b000000000a000019000005aa0a004041000000000089004b0000000008000019000005aa08008041000005aa00c0009c000000000a08c01900000000000a004b000000de0000c13d0000000002290019000000000821034f000000000808043b000005a30080009c000000de0000213d000000000a8600490000002009200039000005aa02a00197000005aa0b900197000000000c2b013f00000000002b004b0000000002000019000005aa020040410000000000a9004b000000000a000019000005aa0a002041000005aa00c0009c00000000020ac019000000000002004b000000de0000c13d00000000020004140000059b0020009c000000ab0000213d000005a504400198000005410000c13d000001c00a50008a0000000005a1034f000000000505043b000000710050008c000006890000613d000000ff0050008c00000000050000190000068a0000613d0000016005a00039000000000551034f000000000505043b000000010050008c000006890000c13d000005b504000041000000a00040043f0000002004000039000000a40040043f000000000591034f000000c40080043f000005f4068001980000001f0780018f000000e404600039000001da0000613d000000e409000039000000000a05034f00000000ab0a043c0000000009b90436000000000049004b000001d60000c13d000000000007004b000001e70000613d000000000565034f0000000306700210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000540435000000e40480003900000000000404350000001f04800039000005f4044001970000008305400039000005f4055001970000004401400039000000800010043f000005b60050009c0000159c0000213d0000008005500039000000400050043f000005b70040009c000000ab0000213d000000c002200210000005b1022001970000006001100210000005b801100197000000000121019f000005b9011001c7000000000003004b000009810000c13d0000800602000039000000000300001900000000040000190000000005000019000009840000013d00000000032100a900000000022300d9000000000012004b000015080000c13d0000000001000414000000000003004b000000cc0000613d0000059b0010009c0000059b01008041000000c001100210000005a6011001c7000080090200003900008001040000390000000005000019166616520000040f0000000100200190000000d30000613d000006b30000013d0000059b0070009c0000059b07008041000000400170021000000000020604330000059b0020009c0000059b020080410000006002200210000000000112019f0000166800010430000000020010008c000004f40000613d000000710010008c000004ae0000c13d0000000f0c000029000d01c400c0003d0000000d01300360000000000101043b0000000002c40049000000230520008a000005aa02500197000005aa06100197000000000726013f000000000026004b0000000002000019000005aa02004041000000000051004b0000000005000019000005aa05008041000005aa0070009c000000000205c0190000012405c00039000000000553034f000000e406c00039000000c407c00039000000a408c000390000008409c00039000000640ac00039000000440bc00039000000240cc00039000000000cc3034f000000000bb3034f000000000aa3034f000000000993034f000000000883034f000000000773034f000000000663034f0000000c0d300360000000000505043b000400000005001d00000000050d043b000500000005001d000000000506043b000600000005001d000000000507043b000700000005001d000000000508043b000800000005001d000000000509043b000900000005001d00000000050a043b000a00000005001d00000000050b043b000b00000005001d00000000050c043b000c00000005001d000000000002004b000000de0000c13d0000000e02100029000000000123034f000000000101043b000005a30010009c000000de0000213d00000000051400490000002002200039000005aa06500197000005aa07200197000000000867013f000000000067004b0000000006000019000005aa06004041000000000052004b0000000005000019000005aa05002041000005aa0080009c000000000605c019000000000006004b000000de0000c13d0000059b0620019700000000050004140001000000630355000000000021001a000015080000413d0000000001210019000000000214004b000015080000413d000000000163034f0000059b0220019700010000002103e5000005de0050009c000000ab0000813d00000000012103df000000c002500210000005b102200197000005b3022001c700010000002103b500000000012103af0000801002000039166616610000040f00000060031002700000059b043001970000000100200190000008ab0000613d0000001f02400039000005ba072001970000003f02700039000005bb02200197000000400600043d0000000002260019000000000062004b00000000030000390000000103004039000005a30020009c0000159c0000213d00000001003001900000159c0000c13d000000400020043f000000000546043600000011020003670000000003000031000000000007004b0000029e0000613d0000000007750019000000000832034f0000000009050019000000008a08043c0000000009a90436000000000079004b0000029a0000c13d0000001f0740018f000005b4084001980000000004850019000002a80000613d000000000901034f000000000a050019000000009b09043c000000000aba043600000000004a004b000002a40000c13d000000000007004b000002b50000613d000000000181034f0000000307700210000000000804043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001404350000000001060433000000200010008c00000acb0000c13d0000000f0430006a0000000d01000029000d00400010003d0000000d01200360000000000101043b000000230440008a000005aa06400197000005aa07100197000000000867013f000000000067004b0000000006000019000005aa06004041000000000041004b0000000004000019000005aa04008041000005aa0080009c000000000604c019000000000006004b000000de0000c13d0000000004050433000300000004001d0000000e04100029000000000142034f000000000101043b000005a30010009c000000de0000213d000000050110021000000000031300490000002006400039000005aa04300197000005aa05600197000000000745013f000000000045004b0000000004000019000005aa04004041000000000036004b0000000003000019000005aa03002041000005aa0070009c000000000403c019000000000004004b000000de0000c13d0000001f0510018f000000400300043d0000002004300039000000000001004b000002ee0000613d000000000262034f00000000061400190000000007040019000000002802043c0000000007870436000000000067004b000002ea0000c13d000000000005004b00000000001304350000003f01100039000005df011001970000000001130019000000000031004b00000000020000390000000102004039000005a30010009c0000159c0000213d00000001002001900000159c0000c13d000000400010043f0000059b0040009c0000059b04008041000000400140021000000000020304330000059b0020009c0000059b020080410000006002200210000000000112019f00000000020004140000059b0020009c0000059b02008041000000c002200210000000000112019f000005a6011001c70000801002000039166616570000040f0000000100200190000000de0000613d0000000d0200002900000020032000390000001102000367000000000332034f000000000403043b00000000030000310000000f0530006a000000230550008a000005aa06500197000005aa07400197000000000867013f000000000067004b0000000006000019000005aa06004041000000000054004b0000000005000019000005aa05008041000005aa0080009c000000000605c019000000000101043b000d00000001001d000000000006004b000000de0000c13d0000000e04400029000000000142034f000000000101043b000005a30010009c000000de0000213d00000000051300490000002004400039000005aa06500197000005aa07400197000000000867013f000000000067004b0000000006000019000005aa06004041000000000054004b0000000005000019000005aa05002041000005aa0080009c000000000605c019000000000006004b000000de0000c13d0000059b0640019700000000050004140001000000620355000000000041001a000015080000413d0000000001410019000000000313004b000015080000413d000000000162034f0000059b0230019700010000002103e50000059b0050009c000000ab0000213d00000000012103df000000c002500210000005b102200197000005b3022001c700010000002103b500000000012103af0000801002000039166616610000040f00000060031002700000059b033001970000000100200190000016100000613d0000001f02300039000005ba052001970000003f02500039000005bb04200197000000400200043d0000000004420019000000000024004b00000000060000390000000106004039000005a30040009c0000159c0000213d00000001006001900000159c0000c13d000000400040043f0000000004320436000000000005004b0000036a0000613d0000000005540019000000000600003100000011066003670000000007040019000000006806043c0000000007870436000000000057004b000003660000c13d0000001f0530018f000005b4063001980000000003640019000003740000613d000000000701034f0000000008040019000000007907043c0000000008980436000000000038004b000003700000c13d000000000005004b000003810000613d000000000161034f0000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200010008c00000acb0000c13d0000000002040433000000400100043d000001c0031000390000000000230435000001a0021000390000000d030000290000000000320435000001800210003900000003030000290000000000320435000001600210003900000004030000290000000000320435000001400210003900000005030000290000000000320435000001200210003900000006030000290000000000320435000001000210003900000007030000290000000000320435000000e00210003900000008030000290000000000320435000000c00210003900000009030000290000000000320435000000a0021000390000000a03000029000000000032043500000080021000390000000b03000029000000000032043500000060021000390000000c0300002900000000003204350000004002100039000000710300003900000000003204350000002002100039000005e1030000410000000000320435000001c0030000390000000000310435000005e20010009c0000159c0000213d000001e003100039000000400030043f0000059b0020009c0000059b02008041000000400220021000000000010104330000059b0010009c0000059b010080410000006001100210000000000121019f00000000020004140000059b0020009c0000059b02008041000000c002200210000000000112019f000005a6011001c70000801002000039166616570000040f0000000100200190000000de0000613d000000000101043b000c00000001001d000000400100043d000d00000001001d000005d201000041000000000010044300000000010004140000059b0010009c0000059b01008041000000c001100210000005d3011001c70000800b02000039166616570000040f0000000100200190000015320000613d0000000d040000290000002002400039000000000101043b000005e3030000410000000000320435000000800340003900000000001304350000006001400039000005e40300004100000000003104350000004001400039000005e503000041000000000031043500000080010000390000000000140435000005e60040009c0000159c0000213d0000000d03000029000000a001300039000000400010043f0000059b0020009c0000059b02008041000000400120021000000000020304330000059b0020009c0000059b020080410000006002200210000000000112019f00000000020004140000059b0020009c0000059b02008041000000c002200210000000000112019f000005a6011001c70000801002000039166616570000040f0000000100200190000000de0000613d000000000301043b000000400100043d00000042021000390000000c0400002900000000004204350000002002100039000005e70400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000005b60010009c0000159c0000213d0000008003100039000000400030043f0000059b0020009c0000059b02008041000000400220021000000000010104330000059b0010009c0000059b010080410000006001100210000000000121019f0000000002000414000014e20000013d000000000651034f000000000606043b000005ab06600197000005bc0060009c000006b30000613d000005bd0060009c0000053d0000c13d000000440040008c0000008b0000413d0000000404500039000000000541034f000000000505043b000e00000005001d000005a50050009c000000de0000213d000001400330008a000000000331034f0000002004400039000000000141034f000000000101043b000d00000001001d000000000103043b000005be03000041000000800030043f000005a502200197000b00000002001d000000840020043f000005a501100197000c00000001001d000000a40010043f00000000010004140000059b0010009c0000059b01008041000000c001100210000005bf011001c70000000e02000029166616570000040f00000060031002700000059b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf0000044a0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000004460000c13d000000000006004b000004570000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f00000000006504350000000100200190000006cf0000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200030008c000000de0000413d000000800300043d0000000d0030006c000006b30000813d000000a003200039000005c0040000410000000000430435000000a4042000390000000c050000290000000000540435000000c4042000390000000000040435000000440400003900000000004104350000014004200039000000400040043f0000012005200039000005c104000041000900000005001d000000000045043500000100042001bf0000002002000039000800000004001d0000000000240435000000400230021000000000010104330000059b0010009c0000059b010080410000006001100210000000000121019f00000000020004140000059b0020009c0000059b02008041000000c002200210000000000121019f0000000e02000029166616520000040f00000060031002700000059b03300198000009bf0000c13d000a00600000003d0000000a0100002900000000010104330000000100200190000009e90000613d000000000001004b00000b6a0000c13d000005c30100004100000000001004430000000e01000029000000040010044300000000010004140000059b0010009c0000059b01008041000000c001100210000005c4011001c70000800202000039166616570000040f0000000100200190000015320000613d000000000101043b000000000001004b00000b660000c13d000000400100043d0000004402100039000005cc03000041000000000032043500000024021000390000001d030000390000000000320435000005c20200004100000000002104350000000402100039000000200300003900000000003204350000059b0010009c0000059b010080410000004001100210000005cd011001c70000166800010430000005f302000041000000000020043f000000040010043f000005f20100004100001668000104300000000c01300360000000400200043d000d00000002001d000000000101043b000000800010008c000005510000413d000005a90010009c0000000006010019000000800660227000000000020000390000001002002039000005a30060009c00000008022021bf00000040066022700000059b0060009c00000004022021bf00000020066022700000ffff0060008c00000002022021bf0000001006602270000000ff0060008c00000001022020390000002107200039000005f4077001970000003f08700039000005f4068001970000000d066000290000000d0060006c00000000080000390000000108004039000005a30060009c0000159c0000213d00000001008001900000159c0000c13d000000400060043f00000002062000390000000d080000290000000006680436000000000007004b000004e20000613d0000000007760019000000000805034f0000000009060019000000008a08043c0000000009a90436000000000079004b000004de0000c13d0000000d070000290000000007070433000000000007004b00000b600000613d0000000007060433000005d507700197000000f808200210000000000778019f000005d60770009a00000000007604350000000302200210000000f80220008900000000012101cf000000ff0020008c00000000010020190000000d0200002900000021022000390000055f0000013d000005d201000041000000000010044300000000010004140000059b0010009c0000059b01008041000000c001100210000005d3011001c70000800b02000039166616570000040f0000000100200190000015320000613d000000400300043d000000000401043b000000800040008c000005ec0000413d000005a90040009c0000000001040019000000800110227000000000050000390000001005002039000005a30010009c00000008055021bf00000040011022700000059b0010009c00000004055021bf00000020011022700000ffff0010008c00000002055021bf0000001001102270000000ff0010008c00000001055020390000002102500039000005f4072001970000003f02700039000005f4012001970000000001130019000000000031004b00000000020000390000000102004039000005a30010009c0000159c0000213d00000001002001900000159c0000c13d000000400010043f0000000201500039000000000613043600000011010003670000000002000031000000000007004b0000052d0000613d0000000007760019000000000821034f0000000009060019000000008a08043c0000000009a90436000000000079004b000005290000c13d0000000007030433000000000007004b00000b600000613d0000000007060433000005d507700197000000f808500210000000000778019f000005d60770009a00000000007604350000000305500210000000f80550008900000000045401cf000000ff0050008c00000000040020190000002105300039000005fb0000013d000005ce01000041000000000010043f000005a8010000410000166800010430000080060040008c000006890000c13d000000030080008c00000000050000190000068a0000a13d000000000a91034f0000000105000039000000000a0a043b000005ab0aa00197000005ac00a0009c000006850000213d000005af00a0009c0000068a0000613d000005b000a0009c0000068a0000613d000006890000013d0000000d02000029000005d40020009c0000159c0000213d0000000d060000290000004002600039000000400020043f00000001020000390000000002260436000000f806100210000000000001004b000005aa06006041000000000105043b000005d501100197000000000161019f0000000000120435000000400100043d0000000c02000029000000600220008a000000000623034f000000000606043b000000800060008c000006390000413d000005a90060009c0000000008060019000000800880227000000000070000390000001007002039000005a30080009c00000008077021bf00000040088022700000059b0080009c00000004077021bf00000020088022700000ffff0080008c00000002077021bf0000001008802270000000ff0080008c00000001077020390000002109700039000005f4099001970000003f0a900039000005f408a001970000000008810019000000000018004b000000000a000039000000010a004039000005a30080009c0000159c0000213d0000000100a001900000159c0000c13d000000400080043f00000002087000390000000008810436000000000009004b0000058f0000613d0000000009980019000000000a05034f000000000b08001900000000ac0a043c000000000bcb043600000000009b004b0000058b0000c13d0000000009010433000000000009004b00000b600000613d0000000009080433000005d509900197000000f80a70021000000000099a019f000005d60990009a00000000009804350000000307700210000000f80770008900000000067601cf000000ff0070008c00000000060020190000002107100039000006450000013d000005d40030009c0000159c0000213d0000004001300039000000400010043f00000001010000390000000005130436000000f806400210000000000004004b000005aa0600604100000000020000310000001101000367000000000421034f000000000404043b000005d504400197000000000464019f00000000004504350000000c04100360000000400600043d000000000404043b000000800040008c000006ed0000413d000005a90040009c0000000007040019000000800770227000000000050000390000001005002039000005a30070009c00000008055021bf00000040077022700000059b0070009c00000004055021bf00000020077022700000ffff0070008c00000002055021bf0000001007702270000000ff0070008c00000001055020390000002108500039000005f4088001970000003f09800039000005f4079001970000000007760019000000000067004b00000000090000390000000109004039000005a30070009c0000159c0000213d00000001009001900000159c0000c13d000000400070043f00000002075000390000000007760436000000000008004b000005dc0000613d000000000921034f0000000008870019000000000a070019000000009b09043c000000000aba043600000000008a004b000005d80000c13d0000000008060433000000000008004b00000b600000613d0000000008070433000005d508800197000000f809500210000000000889019f000005d60880009a00000000008704350000000305500210000000f80550008900000000045401cf000000ff0050008c00000000040020190000002105600039000006fa0000013d000005d40030009c0000159c0000213d0000004001300039000000400010043f00000001010000390000000005130436000000f806400210000000000004004b000005aa0600604100000000020000310000001101000367000000000421034f000000000404043b000005d504400197000000000464019f00000000004504350000000c04100360000000400600043d000000000404043b000000800040008c0000073a0000413d000005a90040009c0000000007040019000000800770227000000000050000390000001005002039000005a30070009c00000008055021bf00000040077022700000059b0070009c00000004055021bf00000020077022700000ffff0070008c00000002055021bf0000001007702270000000ff0070008c00000001055020390000002108500039000005f4088001970000003f09800039000005f4079001970000000007760019000000000067004b00000000090000390000000109004039000005a30070009c0000159c0000213d00000001009001900000159c0000c13d000000400070043f00000002075000390000000007760436000000000008004b000006290000613d000000000921034f0000000008870019000000000a070019000000009b09043c000000000aba043600000000008a004b000006250000c13d0000000008060433000000000008004b00000b600000613d0000000008070433000005d508800197000000f809500210000000000889019f000005d60880009a00000000008704350000000305500210000000f80550008900000000045401cf000000ff0050008c00000000040020190000002105600039000007470000013d000005d40010009c0000159c0000213d0000004007100039000000400070043f00000001070000390000000007710436000000f808600210000000000006004b000005aa08006041000000000605043b000005d506600197000000000686019f0000000000670435000000400220008a000000000223034f000000400600043d000000000702043b000000800070008c000007870000413d000005a90070009c0000000002070019000000800220227000000000080000390000001008002039000005a30020009c00000008088021bf00000040022022700000059b0020009c00000004088021bf00000020022022700000ffff0020008c00000002088021bf0000001002202270000000ff0020008c00000001088020390000002109800039000005f4099001970000003f0a900039000005f402a001970000000002260019000000000062004b000000000a000039000000010a004039000005a30020009c0000159c0000213d0000000100a001900000159c0000c13d000000400020043f00000002028000390000000002260436000000000009004b000006740000613d0000000009920019000000000a05034f000000000b02001900000000ac0a043c000000000bcb043600000000009b004b000006700000c13d0000000009060433000000000009004b00000b600000613d0000000009020433000005d509900197000000f80a80021000000000099a019f000005d60990009a00000000009204350000000308800210000000f80880008900000000078701cf000000ff0080008c000000000700201900000021086000390000000000780435000007940000013d000005ad00a0009c0000068a0000613d000005ae00a0009c0000068a0000613d0000000005000019000000000a98001900000000006a004b0000000006000039000000010600203900000000008a004b00000001066041bf0000059b089001970001000000810355000000000181034f000000000003004b000006a40000c13d0000000100600190000015080000c13d000000000005004b000005b203000041000005b303006041000000c002200210000005b102200197000000000223019f0000000003a700490000059b0330019700000000013103df00010000002103b500000000012103af0000000002040019000006b00000013d0000000100600190000015080000c13d0000000006a700490000059b0660019700000000016103df000000c002200210000005b102200197000005b2022001c700010000002103b500000000012103af000080090200003900000000060000191666165c0000040f0000000100200190000006b50000613d0000000001000019000016670001042e00000060041002700000001f0340018f000005b402400198000006bf0000613d000000000501034f0000000006000019000000005705043c0000000006760436000000000026004b000006bb0000c13d0000059b04400197000000000003004b000006cd0000613d000000000121034f0000000303300210000000000502043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000120435000000600140021000001668000104300000001f0530018f000005b406300198000000400200043d0000000004620019000006da0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000006d60000c13d000000000005004b000006e70000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000059b0020009c0000059b020080410000004002200210000000000112019f0000166800010430000005d40060009c0000159c0000213d0000004005600039000000400050043f00000001050000390000000005560436000000f807400210000000000004004b000005aa07006041000000000421034f000000000404043b000005d504400197000000000474019f0000000000450435000000400700043d0000000c04000029000000600440008a000000000541034f000000000505043b000000800050008c000007ac0000413d000005a90050009c0000000009050019000000800990227000000000080000390000001008002039000005a30090009c00000008088021bf00000040099022700000059b0090009c00000004088021bf00000020099022700000ffff0090008c00000002088021bf0000001009902270000000ff0090008c0000000108802039000000210a800039000005f40aa001970000003f0ba00039000005f409b001970000000009970019000000000079004b000000000b000039000000010b004039000005a30090009c0000159c0000213d0000000100b001900000159c0000c13d000000400090043f0000000209800039000000000997043600000000000a004b0000072a0000613d000000000b21034f000000000aa90019000000000c09001900000000bd0b043c000000000cdc04360000000000ac004b000007260000c13d000000000a07043300000000000a004b00000b600000613d000000000a090433000005d50aa00197000000f80b800210000000000aab019f000005d60aa0009a0000000000a904350000000308800210000000f80880008900000000058501cf000000ff0080008c00000000050020190000002108700039000007b90000013d000005d40060009c0000159c0000213d0000004005600039000000400050043f00000001050000390000000005560436000000f807400210000000000004004b000005aa07006041000000000421034f000000000404043b000005d504400197000000000474019f0000000000450435000000400700043d0000000c04000029000000400440008a000000000541034f000000000505043b000000800050008c000007f80000413d000005a90050009c0000000009050019000000800990227000000000080000390000001008002039000005a30090009c00000008088021bf00000040099022700000059b0090009c00000004088021bf00000020099022700000ffff0090008c00000002088021bf0000001009902270000000ff0090008c0000000108802039000000210a800039000005f40aa001970000003f0ba00039000005f409b001970000000009970019000000000079004b000000000b000039000000010b004039000005a30090009c0000159c0000213d0000000100b001900000159c0000c13d000000400090043f0000000209800039000000000997043600000000000a004b000007770000613d000000000b21034f000000000aa90019000000000c09001900000000bd0b043c000000000cdc04360000000000ac004b000007730000c13d000000000a07043300000000000a004b00000b600000613d000000000a090433000005d50aa00197000000f80b800210000000000aab019f000005d60aa0009a0000000000a904350000000308800210000000f80880008900000000058501cf000000ff0080008c00000000050020190000002108700039000008050000013d000005d40060009c0000159c0000213d0000004002600039000000400020043f00000001020000390000000002260436000000f808700210000000000007004b000005aa08006041000000000705043b000005d507700197000000000787019f00000000007204350000000071010434000005f4091001970000001f0810018f000000400a00043d000a0000000a001d000c002000a0003d0000000c0070006c000008440000813d000000000009004b000007a80000613d000000000b8700190000000c0a800029000000200aa0008a000000200bb0008a000000000c9a0019000000000d9b0019000000000d0d04330000000000dc0435000000200990008c000007a20000c13d000000000008004b0000085a0000613d0000000c0a000029000008500000013d000005d40070009c0000159c0000213d0000004008700039000000400080043f00000001080000390000000008870436000000f809500210000000000005004b000005aa09006041000000000521034f000000000505043b000005d505500197000000000595019f0000000000580435000000400a00043d000000400440008a000000000541034f000000000505043b000000800050008c000008c30000413d000005a90050009c0000000009050019000000800990227000000000080000390000001008002039000005a30090009c00000008088021bf00000040099022700000059b0090009c00000004088021bf00000020099022700000ffff0090008c00000002088021bf0000001009902270000000ff0090008c0000000108802039000000210b800039000005f40bb001970000003f0cb00039000005f409c0019700000000099a00190000000000a9004b000000000c000039000000010c004039000005a30090009c0000159c0000213d0000000100c001900000159c0000c13d000000400090043f000000020980003900000000099a043600000000000b004b000007e80000613d000000000c21034f000000000bb90019000000000d09001900000000ce0c043c000000000ded04360000000000bd004b000007e40000c13d000000000b0a043300000000000b004b00000b600000613d000000000b090433000005d50bb00197000000f80c800210000000000bbc019f000005d60bb0009a0000000000b904350000000308800210000000f80880008900000000058501cf000000ff0080008c00000000050020190000002108a00039000008d00000013d000005d40070009c0000159c0000213d0000004008700039000000400080043f00000001080000390000000008870436000000f809500210000000000005004b000005aa09006041000000000521034f000000000505043b000005d505500197000000000595019f0000000000580435000000400800043d000000200440008a000000000541034f000000000505043b000000800050008c000008e00000413d000005a90050009c000000000a050019000000800aa0227000000000090000390000001009002039000005a300a0009c00000008099021bf000000400aa022700000059b00a0009c00000004099021bf000000200aa022700000ffff00a0008c00000002099021bf000000100aa02270000000ff00a0008c0000000109902039000000210b900039000005f40bb001970000003f0cb00039000005f40ac00197000000000aa8001900000000008a004b000000000c000039000000010c004039000005a300a0009c0000159c0000213d0000000100c001900000159c0000c13d0000004000a0043f000000020a900039000000000aa8043600000000000b004b000008340000613d000000000c21034f000000000bba0019000000000d0a001900000000ce0c043c000000000ded04360000000000bd004b000008300000c13d000000000b08043300000000000b004b00000b600000613d000000000b0a0433000005d50bb00197000000f80c900210000000000bbc019f000005d60bb0009a0000000000ba04350000000309900210000000f80990008900000000059501cf000000ff0090008c00000000050020190000002109800039000008ed0000013d0000000c0a900029000000000009004b0000084d0000613d000000000b0700190000000c0c00002900000000bd0b0434000000000cdc04360000000000ac004b000008490000c13d000000000008004b0000085a0000613d0000000007970019000000030880021000000000090a043300000000098901cf000000000989022f00000000070704330000010008800089000000000787022f00000000078701cf000000000797019f00000000007a04350000000c0110002900000000000104350000000006060433000005f4086001970000001f0760018f000000000012004b000008710000813d000000000008004b0000086d0000613d000000000a7200190000000009710019000000200990008a000000200aa0008a000000000b890019000000000c8a0019000000000c0c04330000000000cb0435000000200880008c000008670000c13d000000000007004b00000000090100190000087d0000c13d000008870000013d0000000009810019000000000008004b0000087a0000613d000000000a020019000000000b01001900000000ac0a0434000000000bcb043600000000009b004b000008760000c13d000000000007004b000008870000613d00000000028200190000000307700210000000000809043300000000087801cf000000000878022f00000000020204330000010007700089000000000272022f00000000027201cf000000000282019f0000000000290435000000000116001900000000000104350000000a060000290000000001610049000000200210008a00000000002604350000001f01100039000005f4011001970000000002610019000000000012004b00000000010000390000000101004039000b00000002001d000005a30020009c0000159c0000213d00000001001001900000159c0000c13d0000000b01000029000000400010043f0000000f010000290000016401100039000000000213034f000000000202043b000000010020008c0000092c0000c13d0000000b02000029000005d40020009c0000159c0000213d0000000b060000290000004002600039000000400020043f00000001020000390000000000260435000005aa0200004100000020060000390000093d0000013d0000001f0340018f000005b402400198000008b40000613d000000000501034f0000000006000019000000005705043c0000000006760436000000000026004b000008b00000c13d000000000003004b000008c10000613d000000000121034f0000000303300210000000000502043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f000000000012043500000060014002100000166800010430000005d400a0009c0000159c0000213d0000004008a00039000000400080043f000000010800003900000000088a0436000000f809500210000000000005004b000005aa09006041000000000521034f000000000505043b000005d505500197000000000595019f0000000000580435000000400b00043d0000010004400039000000000541034f000000000505043b000000010050008c00000a530000c13d000005d400b0009c0000159c0000213d0000004005b00039000000400050043f000000010500003900000000005b0435000005aa05000041000000200800003900000a620000013d000005d40080009c0000159c0000213d0000004009800039000000400090043f00000001090000390000000009980436000000f80a500210000000000005004b000005aa0a006041000000000521034f000000000505043b000005d5055001970000000005a5019f0000000000590435000000400b00043d000000400440008a000000000541034f000000000505043b000000800050008c00000aa50000413d000005a90050009c000000000a050019000000800aa0227000000000090000390000001009002039000005a300a0009c00000008099021bf000000400aa022700000059b00a0009c00000004099021bf000000200aa022700000ffff00a0008c00000002099021bf000000100aa02270000000ff00a0008c0000000109902039000000210c900039000005f40cc001970000003f0dc00039000005f40ad00197000000000aab00190000000000ba004b000000000d000039000000010d004039000005a300a0009c0000159c0000213d0000000100d001900000159c0000c13d0000004000a0043f000000020a900039000000000aab043600000000000c004b0000091c0000613d000000000d21034f000000000cca0019000000000e0a001900000000df0d043c000000000efe04360000000000ce004b000009180000c13d000000000c0b043300000000000c004b00000b600000613d000000000c0a0433000005d50cc00197000000f80d900210000000000ccd019f000005d60cc0009a0000000000ca04350000000309900210000000f80990008900000000059501cf000000ff0090008c00000000050020190000002109b0003900000ab20000013d0000000b02000029000005d40020009c0000159c0000213d0000000f020000290000004402200039000000000223034f000000000202043b0000000b080000290000004006800039000000400060043f0000002006800039000005d707000041000000000076043500000015060000390000000000680435000000210600003900000060022002100000000b066000290000000000260435000000400110008a000000000213034f000000400600043d000900000006001d000000000202043b000000800020008c00000a0b0000413d000005a90020009c0000000007020019000000800770227000000000060000390000001006002039000005a30070009c00000008066021bf00000040077022700000059b0070009c00000004066021bf00000020077022700000ffff0070008c00000002066021bf0000001007702270000000ff0070008c00000001066020390000002107600039000005f4087001970000003f07800039000005f4077001970000000907700029000000090070006c00000000090000390000000109004039000005a30070009c0000159c0000213d00000001009001900000159c0000c13d000000400070043f000000020760003900000009090000290000000007790436000000000008004b0000096f0000613d0000000008870019000000000905034f000000000a070019000000009b09043c000000000aba043600000000008a004b0000096b0000c13d00000009080000290000000008080433000000000008004b00000b600000613d0000000008070433000005d508800197000000f809600210000000000889019f000005d60880009a00000000008704350000000306600210000000f80660008900000000026201cf000000ff0060008c00000000020020190000000906000029000000210660003900000a190000013d0000800902000039000080060400003900000001050000390000000006000019166616520000040f00000060031002700000059b053001970000001f03500039000005ba063001970000003f03600039000005bb07300197000000400300043d0000000004370019000000000074004b00000000070000390000000107004039000005a30040009c0000159c0000213d00000001007001900000159c0000c13d000000400040043f0000000004530436000000000006004b000009a10000613d0000000006640019000000000700003100000011077003670000000008040019000000007907043c0000000008980436000000000068004b0000099d0000c13d0000001f0650018f000005b4075001980000000005740019000009ab0000613d000000000801034f0000000009040019000000008a08043c0000000009a90436000000000059004b000009a70000c13d000000000006004b000009b80000613d000000000171034f0000000306600210000000000705043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001504350000000100200190000006b30000c13d0000059b0040009c0000059b0400804100000040014002100000000002030433000002180000013d0000001f04300039000005ba044001970000003f04400039000005bb04400197000000400500043d0000000004450019000a00000005001d000000000054004b00000000050000390000000105004039000005a30040009c0000159c0000213d00000001005001900000159c0000c13d000000400040043f0000001f0430018f0000000a050000290000000006350436000005b405300198000f00000006001d0000000003560019000009db0000613d000000000601034f0000000f07000029000000006806043c0000000007870436000000000037004b000009d70000c13d000000000004004b000004870000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000004870000013d000000000001004b00000ac20000c13d000000400100043d000005c20200004100000000002104350000000402100039000000200300003900000000003204350000000802000029000000000202043300000024031000390000000000230435000000200300008a000000000632016f0000001f0520018f0000004404100039000000090040006b00000af60000813d000000000006004b00000a070000613d00000009085000290000000007540019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c00000a010000c13d000000000005004b00000b0d0000613d000000000704001900000b020000013d0000000906000029000005d40060009c0000159c0000213d00000009070000290000004006700039000000400060043f00000001060000390000000006670436000000f807200210000000000002004b000005aa07006041000000000205043b000005d502200197000000000272019f00000000002604350000000e0240006a000000a001100039000000000613034f000000000606043b0000001f0720008a000005aa02700197000005aa08600197000000000928013f000000000028004b0000000002000019000005aa02004041000000000076004b0000000008000019000005aa08008041000005aa0090009c000000000208c019000000000002004b000000de0000c13d0000000e08600029000000000283034f000000000202043b000005a30020009c000000de0000213d00000000092400490000002008800039000005aa0a900197000005aa0b800197000000000cab013f0000000000ab004b000000000a000019000005aa0a004041000000000098004b0000000009000019000005aa09002041000005aa00c0009c000000000a09c01900000000000a004b000000de0000c13d000000010020008c00000d5c0000c13d000000000283034f000000000202043b000005aa0020009c00000f120000413d000000400200043d000800000002001d000005d40020009c0000159c0000213d00000008050000290000004002500039000000400020043f00000001020000390000000005250436000005d902000041000700000005001d000000000025043500000f240000013d000005d400b0009c0000159c0000213d0000000f050000290000004405500039000000000551034f000000000505043b0000004008b00039000000400080043f0000002008b00039000005d7090000410000000000980435000000150800003900000000008b0435000000210800003900000060055002100000000008b800190000000000580435000000400440008a000000000441034f000000400900043d000000000404043b000000800040008c00000acf0000413d000005a90040009c0000000008040019000000800880227000000000050000390000001005002039000005a30080009c00000008055021bf00000040088022700000059b0080009c00000004055021bf00000020088022700000ffff0080008c00000002055021bf0000001008802270000000ff0080008c0000000105502039000000210c500039000005f40cc001970000003f0dc00039000005f408d001970000000008890019000000000098004b000000000d000039000000010d004039000005a30080009c0000159c0000213d0000000100d001900000159c0000c13d000000400080043f00000002085000390000000008890436000d00000008001d00000000000c004b00000a930000613d000000000d21034f0000000d0e000029000000000cce001900000000df0d043c000000000efe04360000000000ce004b00000a8f0000c13d000000000c09043300000000000c004b00000b600000613d0000000d08000029000000000c080433000005d50cc00197000000f80d500210000000000ccd019f000005d60cc0009a0000000000c804350000000305500210000000f80550008900000000045401cf000000ff0050008c00000000040020190000002105900039000000000045043500000ade0000013d000005d400b0009c0000159c0000213d0000004009b00039000000400090043f000000010900003900000000099b0436000000f80a500210000000000005004b000005aa0a006041000000000521034f000000000505043b000005d5055001970000000005a5019f0000000000590435000000400c00043d0000010004400039000000000541034f000000000505043b000000010050008c00000b1a0000c13d000005d400c0009c0000159c0000213d0000004005c00039000000400050043f000000010500003900000000005c0435000005aa05000041000000200900003900000b290000013d0000000f020000290000059b0020009c0000059b0200804100000040022002100000059b0010009c0000059b010080410000006001100210000000000121019f0000166800010430000005e001000041000000000010043f000005a8010000410000166800010430000005d40090009c0000159c0000213d0000004005900039000000400050043f00000001050000390000000008590436000000f805400210000000000004004b000005aa05006041000000000421034f000000000404043b000005d504400197000000000454019f000d00000008001d000000000048043500000000dc030434000005f40fc001970000001f0ec0018f000000400300043d000b00000003001d000c00200030003d0000000c00d0006c00000c000000813d00000000000f004b00000af20000613d0000000003ed00190000000c04e00029000000200440008a000000200330008a0000000005f400190000000008f3001900000000080804330000000000850435000000200ff0008c00000aec0000c13d00000000000e004b00000c160000613d0000000c0400002900000c0c0000013d0000000007640019000000000006004b00000aff0000613d00000009080000290000000009040019000000008a0804340000000009a90436000000000079004b00000afb0000c13d000000000005004b00000b0d0000613d000900090060002d0000000305500210000000000607043300000000065601cf000000000656022f000000090800002900000000080804330000010005500089000000000858022f00000000055801cf000000000565019f00000000005704350000001f05200039000000000335016f0000000002420019000000000002043500000044023000390000059b0020009c0000059b0200804100000060022002100000059b0010009c0000059b010080410000004001100210000000000112019f0000166800010430000005d400c0009c0000159c0000213d0000000f050000290000004405500039000000000551034f000000000505043b0000004009c00039000000400090043f0000002009c00039000005d70a0000410000000000a90435000000150900003900000000009c0435000000210900003900000060055002100000000009c900190000000000590435000000400440008a000000000441034f000000400500043d000d00000005001d000000000404043b000000800040008c00000c2d0000413d000005a90040009c0000000009040019000000800990227000000000050000390000001005002039000005a30090009c00000008055021bf00000040099022700000059b0090009c00000004055021bf00000020099022700000ffff0090008c00000002055021bf0000001009902270000000ff0090008c0000000105502039000000210d500039000005f40dd001970000003f0ed00039000005f409e001970000000d099000290000000d0090006c000000000e000039000000010e004039000005a30090009c0000159c0000213d0000000100e001900000159c0000c13d000000400090043f00000002095000390000000d0a00002900000000099a0436000c00000009001d00000000000d004b00000b5c0000613d000000000e21034f0000000c0f000029000000000ddf001900000000e90e043c000000000f9f04360000000000df004b00000b580000c13d0000000d090000290000000009090433000000000009004b00000d7f0000c13d000005f101000041000000000010043f0000003201000039000000040010043f000005f20100004100001668000104300000000a010000290000000001010433000000000001004b00000b8b0000613d000005a40010009c000000de0000213d000000200010008c000000de0000413d0000000f010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000de0000c13d000000000001004b00000b8b0000c13d000000400100043d0000006402100039000005ca0300004100000000003204350000004402100039000005cb03000041000000000032043500000024021000390000002a030000390000000000320435000005c20200004100000000002104350000000402100039000000200300003900000000003204350000059b0010009c0000059b010080410000004001100210000005c8011001c70000166800010430000000400300043d000f00000003001d00000024013000390000000c020000290000000000210435000005be01000041000000000013043500000004013000390000000b0200002900000000002104350000059b0030009c0000059b010000410000000001034019000000400110021000000000020004140000059b0020009c0000059b02008041000000c002200210000000000112019f000005c5011001c70000000e02000029166616570000040f00000060031002700000059b03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000f0b0000290000000f0570002900000bb10000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000bad0000c13d000000000006004b00000bbe0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000010020019000000d500000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000005a30010009c0000159c0000213d00000001002001900000159c0000c13d000000400010043f000000200030008c000000de0000413d0000004403100039000000240410003900000000020b0433000000000002004b00000fcb0000c13d0000002002100039000005c00500004100000000005204350000000c0500002900000000005404350000000d04000029000000000043043500000044030000390000000000310435000005b60010009c0000159c0000213d0000008003100039000f00000003001d000000400030043f000005c90010009c0000159c0000213d000000c003100039000000400030043f00000020030000390000000f040000290000000000340435000000a004100039000005c103000041000c00000004001d00000000003404350000059b0020009c0000059b02008041000000400220021000000000010104330000059b0010009c0000059b010080410000006001100210000000000121019f00000000020004140000059b0020009c0000059b02008041000000c002200210000000000121019f0000000e02000029166616520000040f00000060031002700000059b03300198000011360000c13d000d00600000003d000b00800000003d0000115f0000013d0000000c04f0002900000000000f004b00000c090000613d00000000030d00190000000c0500002900000000380304340000000005850436000000000045004b00000c050000c13d00000000000e004b00000c160000613d000000000dfd00190000000303e00210000000000504043300000000053501cf000000000535022f00000000080d04330000010003300089000000000838022f00000000033801cf000000000353019f00000000003404350000000c0cc0002900000000000c043500000000d6060434000005f40f6001970000001f0e60018f0000000000cd004b00000c3f0000813d00000000000f004b00000c290000613d0000000003ed00190000000004ec0019000000200440008a000000200330008a0000000005f400190000000008f3001900000000080804330000000000850435000000200ff0008c00000c230000c13d00000000000e004b00000c550000613d00000000040c001900000c4b0000013d0000000d05000029000005d40050009c0000159c0000213d0000000d090000290000004005900039000000400050043f00000001050000390000000009590436000000f805400210000000000004004b000005aa05006041000000000421034f000000000404043b000005d504400197000000000454019f000c00000009001d000000000049043500000d8e0000013d0000000004fc001900000000000f004b00000c480000613d00000000030d001900000000050c001900000000380304340000000005850436000000000045004b00000c440000c13d00000000000e004b00000c550000613d000000000dfd00190000000303e00210000000000504043300000000053501cf000000000535022f00000000080d04330000010003300089000000000838022f00000000033801cf000000000353019f00000000003404350000000006c60019000000000006043500000000c7070434000005f40e7001970000001f0d70018f00000000006c004b00000c6c0000813d00000000000e004b00000c680000613d0000000003dc00190000000004d60019000000200440008a000000200330008a0000000005e400190000000008e3001900000000080804330000000000850435000000200ee0008c00000c620000c13d00000000000d004b00000c820000613d000000000406001900000c780000013d0000000004e6001900000000000e004b00000c750000613d00000000030c0019000000000506001900000000380304340000000005850436000000000045004b00000c710000c13d00000000000d004b00000c820000613d000000000cec00190000000303d00210000000000504043300000000053501cf000000000535022f00000000080c04330000010003300089000000000838022f00000000033801cf000000000353019f00000000003404350000000006670019000000000006043500000000a70a0434000005f40d7001970000001f0c70018f00000000006a004b00000c990000813d00000000000d004b00000c950000613d0000000003ca00190000000004c60019000000200440008a000000200330008a0000000005d400190000000008d3001900000000080804330000000000850435000000200dd0008c00000c8f0000c13d00000000000c004b00000caf0000613d000000000406001900000ca50000013d0000000004d6001900000000000d004b00000ca20000613d00000000030a0019000000000506001900000000380304340000000005850436000000000045004b00000c9e0000c13d00000000000c004b00000caf0000613d000000000ada00190000000303c00210000000000504043300000000053501cf000000000535022f00000000080a04330000010003300089000000000838022f00000000033801cf000000000353019f00000000003404350000000006670019000000000006043500000000a70b0434000005f40c7001970000001f0b70018f00000000006a004b00000cc60000813d00000000000c004b00000cc20000613d0000000003ba00190000000004b60019000000200440008a000000200330008a0000000005c400190000000008c3001900000000080804330000000000850435000000200cc0008c00000cbc0000c13d00000000000b004b00000cdc0000613d000000000406001900000cd20000013d0000000004c6001900000000000c004b00000ccf0000613d00000000030a0019000000000506001900000000380304340000000005850436000000000045004b00000ccb0000c13d00000000000b004b00000cdc0000613d000000000aca00190000000303b00210000000000504043300000000053501cf000000000535022f00000000080a04330000010003300089000000000838022f00000000033801cf000000000353019f0000000000340435000000000667001900000000000604350000000007090433000005f40a7001970000001f0970018f0000000d0060006b00000cf30000813d00000000000a004b00000cef0000613d0000000d039000290000000004960019000000200440008a000000200330008a0000000005a400190000000008a3001900000000080804330000000000850435000000200aa0008c00000ce90000c13d000000000009004b000000000406001900000cff0000c13d00000d0a0000013d0000000004a6001900000000000a004b00000cfc0000613d0000000d03000029000000000506001900000000380304340000000005850436000000000045004b00000cf80000c13d000000000009004b00000d0a0000613d000d000d00a0002d0000000303900210000000000504043300000000053501cf000000000535022f0000000d0800002900000000080804330000010003300089000000000838022f00000000033801cf000000000353019f0000000000340435000000000367001900000000000304350000000b050000290000000003530049000000200430008a00000000004504350000001f03300039000005f403300197000000000a53001900000000003a004b00000000030000390000000103004039000005a300a0009c0000159c0000213d00000001003001900000159c0000c13d0000004000a0043f0000000f040000290000000003420049000001c404400039000000000441034f000000000404043b000000230330008a000005aa05300197000005aa06400197000000000756013f000000000056004b0000000005000019000005aa05004041000000000034004b0000000003000019000005aa03008041000005aa0070009c000000000503c019000000000005004b000000de0000c13d0000000e03400029000000000431034f000000000604043b000005a30060009c000000de0000213d00000000046200490000002007300039000005aa03400197000005aa05700197000000000835013f000000000035004b0000000003000019000005aa03004041000000000047004b0000000004000019000005aa04002041000005aa0080009c000000000304c019000000000003004b000000de0000c13d000000010060008c00000fd70000c13d000000000371034f000000000303043b000005aa0030009c0000101c0000413d000005d400a0009c0000159c0000213d0000004003a00039000000400030043f0000000103000039000000000c3a0436000005d9030000410000102b0000013d0000001f0530018f000005b406300198000000400200043d0000000004620019000006da0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000d570000c13d000006da0000013d000000400800043d000800000008001d000000380020008c00000f150000413d0000000808000029000005d40080009c0000159c0000213d000000080b0000290000004008b00039000000400080043f0000059b0020009c00000000080200190000002008802270000000000900003900000004090020390000ffff0080008c00000002099021bf0000001008802270000000ff0080008c00000001099021bf0000000208900039000000000a8b0436000000000505043b000005d505500197000000f808900210000000000558019f000005d8055001c700070000000a001d00000000005a04350000000305900210000000f80550015f00000000025201cf0000002105b00039000000000025043500000f240000013d0000000c0a00002900000000090a0433000005d509900197000000f80d50021000000000099d019f000005d60990009a00000000009a04350000000305500210000000f80550008900000000045401cf000000ff0050008c00000000040020190000000d050000290000002105500039000000000045043500000000ed030434000005f403d001970000001f0fd0018f000000400400043d000a00000004001d000b00200040003d0000000b00e0006c00000da60000813d000000000003004b00000da20000613d0000000005fe00190000000b04f00029000000200440008a000000200550008a0000000009340019000000000a350019000000000a0a04330000000000a90435000000200330008c00000d9c0000c13d00000000000f004b00000dbc0000613d0000000b0400002900000db20000013d0000000b04300029000000000003004b00000daf0000613d00000000050e00190000000b09000029000000005a0504340000000009a90436000000000049004b00000dab0000c13d00000000000f004b00000dbc0000613d000000000e3e00190000000303f00210000000000504043300000000053501cf000000000535022f00000000090e04330000010003300089000000000939022f00000000033901cf000000000353019f00000000003404350000000b0dd0002900000000000d043500000000e6060434000005f4036001970000001f0f60018f0000000000de004b00000dd30000813d000000000003004b00000dcf0000613d0000000005fe00190000000004fd0019000000200440008a000000200550008a0000000009340019000000000a350019000000000a0a04330000000000a90435000000200330008c00000dc90000c13d00000000000f004b00000de90000613d00000000040d001900000ddf0000013d00000000043d0019000000000003004b00000ddc0000613d00000000050e001900000000090d0019000000005a0504340000000009a90436000000000049004b00000dd80000c13d00000000000f004b00000de90000613d000000000e3e00190000000303f00210000000000504043300000000053501cf000000000535022f00000000090e04330000010003300089000000000939022f00000000033901cf000000000353019f00000000003404350000000006d60019000000000006043500000000d7070434000005f4037001970000001f0e70018f00000000006d004b00000e000000813d000000000003004b00000dfc0000613d0000000005ed00190000000004e60019000000200440008a000000200550008a0000000009340019000000000a350019000000000a0a04330000000000a90435000000200330008c00000df60000c13d00000000000e004b00000e160000613d000000000406001900000e0c0000013d0000000004360019000000000003004b00000e090000613d00000000050d00190000000009060019000000005a0504340000000009a90436000000000049004b00000e050000c13d00000000000e004b00000e160000613d000000000d3d00190000000303e00210000000000504043300000000053501cf000000000535022f00000000090d04330000010003300089000000000939022f00000000033901cf000000000353019f0000000000340435000000000667001900000000000604350000000087080434000005f4037001970000001f0d70018f000000000068004b00000e2d0000813d000000000003004b00000e290000613d0000000005d800190000000004d60019000000200440008a000000200550008a0000000009340019000000000a350019000000000a0a04330000000000a90435000000200330008c00000e230000c13d00000000000d004b00000e430000613d000000000406001900000e390000013d0000000004360019000000000003004b00000e360000613d00000000050800190000000009060019000000005a0504340000000009a90436000000000049004b00000e320000c13d00000000000d004b00000e430000613d00000000083800190000000303d00210000000000504043300000000053501cf000000000535022f00000000080804330000010003300089000000000838022f00000000033801cf000000000353019f00000000003404350000000006670019000000000006043500000000870b0434000005f4037001970000001f0b70018f000000000068004b00000e5a0000813d000000000003004b00000e560000613d0000000005b800190000000004b60019000000200440008a000000200550008a0000000009340019000000000a350019000000000a0a04330000000000a90435000000200330008c00000e500000c13d00000000000b004b00000e700000613d000000000406001900000e660000013d0000000004360019000000000003004b00000e630000613d00000000050800190000000009060019000000005a0504340000000009a90436000000000049004b00000e5f0000c13d00000000000b004b00000e700000613d00000000083800190000000303b00210000000000504043300000000053501cf000000000535022f00000000080804330000010003300089000000000838022f00000000033801cf000000000353019f00000000003404350000000006670019000000000006043500000000870c0434000005f4037001970000001f0b70018f000000000068004b00000e870000813d000000000003004b00000e830000613d0000000005b800190000000004b60019000000200440008a000000200550008a0000000009340019000000000a350019000000000a0a04330000000000a90435000000200330008c00000e7d0000c13d00000000000b004b00000e9d0000613d000000000406001900000e930000013d0000000004360019000000000003004b00000e900000613d00000000050800190000000009060019000000005a0504340000000009a90436000000000049004b00000e8c0000c13d00000000000b004b00000e9d0000613d00000000083800190000000303b00210000000000504043300000000053501cf000000000535022f00000000080804330000010003300089000000000838022f00000000033801cf000000000353019f0000000000340435000000000667001900000000000604350000000d030000290000000007030433000005f4037001970000001f0870018f0000000c0060006b00000eb50000813d000000000003004b00000eb10000613d0000000c058000290000000004860019000000200440008a000000200550008a0000000009340019000000000a350019000000000a0a04330000000000a90435000000200330008c00000eab0000c13d000000000008004b000000000406001900000ec10000c13d00000ecc0000013d0000000004360019000000000003004b00000ebe0000613d0000000c050000290000000009060019000000005a0504340000000009a90436000000000049004b00000eba0000c13d000000000008004b00000ecc0000613d000c000c0030002d0000000303800210000000000504043300000000053501cf000000000535022f0000000c0800002900000000080804330000010003300089000000000838022f00000000033801cf000000000353019f0000000000340435000000000367001900000000000304350000000a050000290000000003530049000000200430008a00000000004504350000001f03300039000005f403300197000000000a53001900000000003a004b00000000030000390000000103004039000005a300a0009c0000159c0000213d00000001003001900000159c0000c13d0000004000a0043f0000000f030000290000000004320049000001c403300039000000000331034f000000000303043b000000230440008a000005aa05400197000005aa06300197000000000756013f000000000056004b0000000005000019000005aa05004041000000000043004b0000000004000019000005aa04008041000005aa0070009c000000000504c019000000000005004b000000de0000c13d0000000e03300029000000000431034f000000000604043b000005a30060009c000000de0000213d00000000046200490000002007300039000005aa03400197000005aa05700197000000000835013f000000000035004b0000000003000019000005aa03004041000000000047004b0000000004000019000005aa04002041000005aa0080009c000000000304c019000000000003004b000000de0000c13d000000010060008c0000105e0000c13d000000000371034f000000000303043b000005aa0030009c000010f40000413d000005d400a0009c0000159c0000213d0000004003a00039000000400030043f0000000103000039000000000c3a0436000005d903000041000011030000013d000800600000003d000700800000003d00000f240000013d0000000808000029000005d40080009c0000159c0000213d00000008090000290000004008900039000000400080043f00000001080000390000000008890436000000f802200210000000000505043b000005d505500197000000000225019f000005aa022001c7000700000008001d0000000000280435000000800110008a000000000113034f000000000101043b000000000001004b00000f810000c13d0000006002000039000600800000003d000000000076004b0000000005000019000005aa05008041000005aa07700197000005aa08600197000000000978013f000000000078004b0000000007000019000005aa07004041000005aa0090009c000000000705c019000000000007004b000000de0000c13d0000000d0500002900000000a50504340000000a07000029000000000b0704330000000b07000029000000001c070434000400000001001d0000000907000029000000001d070434000500000001001d0000000807000029000000000e0704330000000e07600029000000000673034f000000000606043b000005a30060009c000000de0000213d000000000f6400490000002001700039000005aa08f00197000005aa07100197000000000987013f000000000087004b0000000007000019000005aa07004041000300000001001d0000000000f1004b0000000008000019000005aa08002041000005aa0090009c000000000708c019000000000007004b000000de0000c13d00000000055b00190000000005c500190000000005d500190000000005e50019000000000565001900000000070204330000000005750019000000400d00043d000005a305500197000000380050008c000010d00000413d000005d400d0009c0000159c0000213d0000004007d00039000000400070043f0000059b0050009c00000000070500190000002007702270000000000800003900000004080020390000ffff0070008c00000002088021bf0000001007702270000000ff0070008c00000001088021bf000000000443034f000000020b800039000000000cbd0436000000000404043b000005d504400197000000f807800210000000000447019f000005dc044001c700000000004c04350000000304800210000000f80440015f00000000044501cf0000002105d000390000000000450435000010dd0000013d000005d201000041000000000010044300000000010004140000059b0010009c0000059b01008041000000c001100210000005d3011001c70000800b02000039166616570000040f0000000100200190000015320000613d000000400200043d000000000101043b000000800010008c00000ff60000413d000005a90010009c0000000003010019000000800330227000000000070000390000001007002039000005a30030009c00000008077021bf00000040033022700000059b0030009c00000004077021bf00000020033022700000ffff0030008c00000002077021bf0000001003302270000000ff0030008c00000001077020390000002103700039000005f4063001970000003f03600039000005f4033001970000000003320019000000000023004b00000000040000390000000104004039000005a30030009c0000159c0000213d00000001004001900000159c0000c13d000000400030043f0000000203700039000000000532043600000011030003670000000004000031000000000006004b00000fba0000613d0000000006650019000000000843034f0000000009050019000000008a08043c0000000009a90436000000000069004b00000fb60000c13d0000000006020433000000000006004b00000b600000613d0000000008050433000005d508800197000000f809700210000000000889019f000005d60880009a00000000008504350000000307700210000000f80770008900000000017101cf000000ff0070008c000000000100201900000021022000390000000000120435000010060000013d000005c202000041000000000021043500000004021000390000002005000039000000000052043500000036020000390000000000240435000005c60200004100000000002304350000006402100039000005c70300004100000b850000013d000000380060008c0000101f0000413d000005d400a0009c0000159c0000213d0000004003a00039000000400030043f0000059b0060009c00000000030600190000002003302270000000000400003900000004040020390000ffff0030008c00000002044021bf0000001003302270000000ff0030008c00000001044021bf000000000321034f0000000205400039000000000c5a0436000000000303043b000005d503300197000000f805400210000000000335019f000005d8033001c700000000003c04350000000303400210000000f80330015f00000000033601cf0000002104a0003900000000003404350000102c0000013d000005d40020009c0000159c0000213d0000004003200039000000400030043f000000f807100210000000000001004b000005aa070060410000000106000039000000000562043600000000040000310000001103000367000000000143034f000000000101043b000005d501100197000000000171019f0000000000150435000005f4086001970000001f0760018f000000400200043d000600200020003d000000060050006c0000107d0000813d000000000008004b000010180000613d000000000a7500190000000609700029000000200990008a000000200aa0008a000000000b890019000000000c8a0019000000000c0c04330000000000cb0435000000200880008c000010120000c13d000000000007004b0000000609000029000010890000c13d000010930000013d000000600a000039000000800c0000390000102c0000013d000005d400a0009c0000159c0000213d0000004003a00039000000400030043f0000000103000039000000000c3a0436000000000321034f000000000303043b000005d503300197000000f804600210000000000343019f000005aa033001c700000000003c0435000000400b00043d000005d400b0009c0000159c0000213d0000004003b00039000000400030043f000000010800003900000000048b0436000000000221034f000000000202043b000005d502200197000005da032001c7000d00000004001d00000000003404350000000b030000290000000003030433000000000336001900000000040a04330000000003430019000000400900043d0000000103300039000005a304300197000000380040008c000010ab0000413d000005d40090009c0000159c0000213d0000059b0040009c00000000030400190000002003302270000000000500003900000004050020390000ffff0030008c00000002055021bf00000010033022700000004008900039000000400080043f000000ff0030008c00000001055021bf000000f803500210000000000223019f000005dc022001c7000000200d90003900000000002d04350000000302500210000000f80220015f00000000022401cf0000002103900039000000000023043500000002025000390000000000290435000010b40000013d000000380060008c000010f70000413d000005d400a0009c0000159c0000213d0000004003a00039000000400030043f0000059b0060009c00000000030600190000002003302270000000000400003900000004040020390000ffff0030008c00000002044021bf0000001003302270000000ff0030008c00000001044021bf000000000321034f0000000205400039000000000c5a0436000000000303043b000005d503300197000000f805400210000000000335019f000005d8033001c700000000003c04350000000303400210000000f80330015f00000000033601cf0000002104a000390000000000340435000011040000013d0000000609800029000000000008004b000010860000613d000000000a050019000000060b00002900000000ac0a0434000000000bcb043600000000009b004b000010820000c13d000000000007004b000010930000613d00000000058500190000000307700210000000000809043300000000087801cf000000000878022f00000000050504330000010007700089000000000575022f00000000057501cf000000000585019f00000000005904350000000605600029000005e906000041000000000065043500000000052500490000001e0650008a00000000006204350000002105500039000005f4065001970000000005260019000000000065004b00000000060000390000000106004039000005a30050009c0000159c0000213d00000001006001900000159c0000c13d0000000f07000029000001c406700039000000400050043f000000000563034f0000000006740049000000230760008a000000000605043b00000f2b0000013d000005d40090009c0000159c0000213d0000004003900039000000400030043f000000000d890436000000f803400210000000000223019f000005db0220009a00000000002d0435000000400400043d0000002002400039000005dd03000041000900000002001d0000000000320435000000000e090433000005f408e001970000001f09e0018f000a00000004001d000000210f4000390000000000fd004b000011870000813d000000000008004b000010cc0000613d00000000039d001900000000049f0019000000200440008a000000200330008a0000000005840019000000000283001900000000020204330000000000250435000000200880008c000010c60000c13d000000000009004b00000000040f0019000011930000c13d0000119d0000013d000005d400d0009c0000159c0000213d0000004007d00039000000400070043f000000000443034f000000010b000039000000000cbd0436000000000404043b000005d504400197000000f805500210000000000445019f000005db0440009a00000000004c0435000005f40eb001970000001f0db0018f000000400400043d000100000004001d000200200040003d0000000200c0006c000012a50000813d00000000000e004b000010f00000613d0000000004dc00190000000205d00029000000200f50008a000000200440008a0000000005ef00190000000007e4001900000000070704330000000000750435000000200ee0008c000010ea0000c13d00000000000d004b000000020f000029000012b10000c13d000012bb0000013d000000600a000039000000800c000039000011040000013d000005d400a0009c0000159c0000213d0000004003a00039000000400030043f0000000103000039000000000c3a0436000000000321034f000000000303043b000005d503300197000000f804600210000000000343019f000005aa033001c700000000003c0435000000400b00043d000005d400b0009c0000159c0000213d0000004003b00039000000400030043f000000010400003900000000054b0436000000000221034f000000000202043b000005d502200197000005da032001c7000d00000005001d00000000003504350000000a030000290000000003030433000000000336001900000000050a04330000000003530019000000400900043d0000000103300039000005a303300197000000380030008c000012800000413d000005d40090009c0000159c0000213d0000059b0030009c00000000040300190000002004402270000000000500003900000004050020390000ffff0040008c00000002055021bf00000010044022700000004008900039000000400080043f000000ff0040008c00000001055021bf000000f804500210000000000224019f000005dc022001c7000000200d90003900000000002d04350000000302500210000000f80220015f00000000022301cf0000002103900039000000000023043500000002025000390000000000290435000012890000013d0000001f04300039000005ba044001970000003f04400039000005bb04400197000000400500043d0000000004450019000d00000005001d000000000054004b00000000050000390000000105004039000005a30040009c0000159c0000213d00000001005001900000159c0000c13d000000400040043f0000001f0430018f0000000d050000290000000006350436000005b405300198000b00000006001d0000000003560019000011520000613d000000000601034f0000000b07000029000000006806043c0000000007870436000000000037004b0000114e0000c13d000000000004004b0000115f0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000000d01000029000000000101043300000001002001900000125e0000613d000000000001004b000011790000c13d000005c30100004100000000001004430000000e01000029000000040010044300000000010004140000059b0010009c0000059b01008041000000c001100210000005c4011001c70000800202000039166616570000040f0000000100200190000015320000613d000000000101043b000000000001004b0000049d0000613d0000000d010000290000000001010433000000000001004b000006b30000613d000005a40010009c000000de0000213d000000200010008c000000de0000413d0000000b010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000de0000c13d000000000001004b00000b770000613d000006b30000013d00000000048f0019000000000008004b000011900000613d00000000030d001900000000050f001900000000320304340000000005250436000000000045004b0000118c0000c13d000000000009004b0000119d0000613d000000000d8d00190000000302900210000000000304043300000000032301cf000000000323022f00000000050d04330000010002200089000000000525022f00000000022501cf000000000232019f0000000000240435000000000dfe001900000000000d04350000000b020000290000000005020433000005f4085001970000001f0e50018f0000000c00d0006b000011b50000813d000000000008004b000011b10000613d0000000c02e000290000000003ed0019000000200430008a000000200320008a0000000002840019000000000983001900000000090904330000000000920435000000200880008c000011ab0000c13d00000000000e004b000011cc0000613d00000000040d0019000011c10000013d00000000048d0019000000000008004b000011be0000613d0000000c0300002900000000090d001900000000320304340000000009290436000000000049004b000011ba0000c13d00000000000e004b000011cc0000613d000c000c0080002d0000000302e00210000000000304043300000000032301cf000000000323022f0000000c0800002900000000080804330000010002200089000000000828022f00000000022801cf000000000232019f00000000002404350000000004d50019000000000004043500000000050a0433000005f4085001970000001f0a50018f00000000004c004b000011e30000813d000000000008004b000011df0000613d0000000002ac00190000000003a40019000000200330008a000000200920008a0000000002830019000000000d890019000000000d0d04330000000000d20435000000200880008c000011d90000c13d00000000000a004b000011f90000613d0000000003040019000011ef0000013d0000000003840019000000000008004b000011ec0000613d00000000090c0019000000000d0400190000000092090434000000000d2d043600000000003d004b000011e80000c13d00000000000a004b000011f90000613d000000000c8c00190000000302a00210000000000803043300000000082801cf000000000828022f00000000090c04330000010002200089000000000929022f00000000022901cf000000000282019f0000000000230435000000000771034f0000000001450019000005f4046001980000001f0560018f00000000000104350000000003410019000012060000613d000000000807034f0000000009010019000000008208043c0000000009290436000000000039004b000012020000c13d000000000005004b000012130000613d000000000247034f0000000304500210000000000503043300000000054501cf000000000545022f000000000202043b0000010004400089000000000242022f00000000024201cf000000000252019f00000000002304350000000001610019000000000001043500000000040b0433000005f4064001970000001f0540018f0000000d0010006b0000122a0000813d000000000006004b000012260000613d0000000d025000290000000003510019000000200330008a000000200720008a0000000002630019000000000867001900000000080804330000000000820435000000200660008c000012200000c13d000000000005004b000012410000613d0000000003010019000012360000013d0000000003610019000000000006004b000012330000613d0000000d07000029000000000801001900000000720704340000000008280436000000000038004b0000122f0000c13d000000000005004b000012410000613d000d000d0060002d0000000302500210000000000503043300000000052501cf000000000525022f0000000d0600002900000000060604330000010002200089000000000626022f00000000022601cf000000000252019f0000000000230435000000000114001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000005f4021001970000000001320019000000000021004b00000000030000390000000103004039000005a30010009c0000159c0000213d00000001003001900000159c0000c13d000000400010043f00000009010000290000059b0010009c0000059b0100804100000040011002100000000a0200002900000000020204330000059b0020009c0000059b020080410000006002200210000000000112019f0000000002000414000014e20000013d000000000001004b0000140a0000c13d000000400100043d000005c20200004100000000002104350000000402100039000000200300003900000000003204350000000f02000029000000000202043300000024031000390000000000230435000000200300008a000000000632016f0000001f0520018f00000044041000390000000c0040006b000016280000813d000000000006004b0000127c0000613d0000000c085000290000000007540019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c000012760000c13d000000000005004b00000b0d0000613d0000000007040019000016340000013d000005d40090009c0000159c0000213d0000004005900039000000400050043f000000000d490436000000f803300210000000000223019f000005db0220009a00000000002d0435000000400400043d0000002002400039000005a603000041000900000002001d0000000000320435000000000e090433000005f403e001970000001f09e0018f000c00000004001d000000210840003900000000008d004b0000140c0000813d000000000003004b000012a10000613d00000000059d00190000000004980019000000200440008a000000200550008a000000000f3400190000000002350019000000000202043300000000002f0435000000200330008c0000129b0000c13d000000000009004b0000000004080019000014180000c13d000014220000013d000000020fe0002900000000000e004b000012ae0000613d00000000040c00190000000205000029000000004704043400000000057504360000000000f5004b000012aa0000c13d00000000000d004b000012bb0000613d000000000cec00190000000304d0021000000000050f043300000000054501cf000000000545022f00000000070c04330000010004400089000000000747022f00000000044701cf000000000454019f00000000004f0435000000020bb0002900000000000b04350000000d04000029000000000c040433000005f40ec001970000001f0dc0018f0000000000ba004b000012d30000813d00000000000e004b000012cf0000613d0000000004da00190000000005db0019000000200f50008a000000200440008a0000000005ef00190000000007e4001900000000070704330000000000750435000000200ee0008c000012c90000c13d00000000000d004b000012e90000613d000000000f0b0019000012df0000013d000000000feb001900000000000e004b000012dc0000613d00000000040a001900000000050b0019000000004704043400000000057504360000000000f5004b000012d80000c13d00000000000d004b000012e90000613d000000000aea00190000000304d0021000000000050f043300000000054501cf000000000545022f00000000070a04330000010004400089000000000747022f00000000044701cf000000000454019f00000000004f0435000000000abc001900000000000a04350000000a04000029000000000b040433000005f40db001970000001f0cb0018f0000000c00a0006b000013010000813d00000000000d004b000012fd0000613d0000000c04c000290000000005ca0019000000200e50008a000000200440008a0000000005de00190000000007d4001900000000070704330000000000750435000000200dd0008c000012f70000c13d00000000000c004b000013180000613d000000000e0a00190000130d0000013d000000000eda001900000000000d004b0000130a0000613d0000000c0400002900000000050a0019000000004704043400000000057504360000000000e5004b000013060000c13d00000000000c004b000013180000613d000c000c00d0002d0000000304c0021000000000050e043300000000054501cf000000000545022f0000000c0700002900000000070704330000010004400089000000000747022f00000000044701cf000000000454019f00000000004e0435000000000aab001900000000000a04350000000b04000029000000000b040433000005f40db001970000001f0cb0018f0000000400a0006b000013300000813d00000000000d004b0000132c0000613d0000000404c000290000000005ca0019000000200e50008a000000200440008a0000000005de00190000000007d4001900000000070704330000000000750435000000200dd0008c000013260000c13d00000000000c004b000013470000613d000000000e0a00190000133c0000013d000000000eda001900000000000d004b000013390000613d000000040400002900000000050a0019000000004704043400000000057504360000000000e5004b000013350000c13d00000000000c004b000013470000613d0004000400d0002d0000000304c0021000000000050e043300000000054501cf000000000545022f000000040100002900000000070104330000010004400089000000000747022f00000000044701cf000000000454019f00000000004e04350000000009ab001900000000000904350000000904000029000000000a040433000005f40ca001970000001f0ba0018f000000050090006b0000135f0000813d00000000000c004b0000135b0000613d0000000504b000290000000005b90019000000200d50008a000000200440008a0000000005cd00190000000007c4001900000000070704330000000000750435000000200cc0008c000013550000c13d00000000000b004b000013760000613d000000000d0900190000136b0000013d000000000dc9001900000000000c004b000013680000613d00000005040000290000000005090019000000004704043400000000057504360000000000d5004b000013640000c13d00000000000b004b000013760000613d0005000500c0002d0000000304b0021000000000050d043300000000054501cf000000000545022f000000050100002900000000070104330000010004400089000000000747022f00000000044701cf000000000454019f00000000004d043500000000089a0019000000000008043500000008040000290000000009040433000005f40b9001970000001f0a90018f000000070080006b0000138e0000813d00000000000b004b0000138a0000613d0000000704a000290000000005a80019000000200c50008a000000200440008a0000000005bc00190000000007b4001900000000070704330000000000750435000000200bb0008c000013840000c13d00000000000a004b000013a50000613d000000000c0800190000139a0000013d000000000cb8001900000000000b004b000013970000613d00000007040000290000000005080019000000004704043400000000057504360000000000c5004b000013930000c13d00000000000a004b000013a50000613d0007000700b0002d0000000304a0021000000000050c043300000000054501cf000000000545022f000000070700002900000000070704330000010004400089000000000747022f00000000044701cf000000000454019f00000000004c0435000000030a3003600000000003890019000005f4086001980000001f0960018f00000000000304350000000007830019000013b20000613d00000000040a034f0000000005030019000000004b04043c0000000005b50436000000000075004b000013ae0000c13d000000000009004b000013bf0000613d00000000048a034f0000000305900210000000000807043300000000085801cf000000000858022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000484019f0000000000470435000000000363001900000000000304350000000002020433000005f4072001970000001f0620018f000000060030006b000013d60000813d000000000007004b000013d20000613d00000006046000290000000005630019000000200850008a000000200440008a0000000005780019000000000974001900000000090904330000000000950435000000200770008c000013cc0000c13d000000000006004b000013ed0000613d0000000008030019000013e20000013d0000000008730019000000000007004b000013df0000613d0000000604000029000000000503001900000000490404340000000005950436000000000085004b000013db0000c13d000000000006004b000013ed0000613d000600060070002d0000000304600210000000000508043300000000054501cf000000000545022f000000060100002900000000010104330000010004400089000000000141022f00000000014101cf000000000151019f00000000001804350000000001320019000000000001043500000001030000290000000001310049000000200210008a00000000002304350000001f01100039000005f4021001970000000001320019000000000021004b00000000020000390000000102004039000005a30010009c0000159c0000213d00000001002001900000159c0000c13d000000400010043f00000002010000290000059b0010009c0000059b010080410000004001100210000000010200002900000000020204330000059b0020009c0000059b020080410000006002200210000000000112019f0000000002000414000014e20000013d0000000b0200002900000ac30000013d0000000004380019000000000003004b000014150000613d00000000050d0019000000000f0800190000000052050434000000000f2f043600000000004f004b000014110000c13d000000000009004b000014220000613d000000000d3d00190000000302900210000000000304043300000000032301cf000000000323022f00000000050d04330000010002200089000000000525022f00000000022501cf000000000232019f0000000000240435000000000d8e001900000000000d04350000000a020000290000000005020433000005f4035001970000001f0e50018f0000000b00d0006b0000143a0000813d000000000003004b000014360000613d0000000b02e000290000000004ed0019000000200440008a000000200920008a0000000002340019000000000839001900000000080804330000000000820435000000200330008c000014300000c13d00000000000e004b000014510000613d00000000040d0019000014460000013d00000000043d0019000000000003004b000014430000613d0000000b0900002900000000080d001900000000920904340000000008280436000000000048004b0000143f0000c13d00000000000e004b000014510000613d000b000b0030002d0000000302e00210000000000304043300000000032301cf000000000323022f0000000b0800002900000000080804330000010002200089000000000828022f00000000022801cf000000000232019f00000000002404350000000004d50019000000000004043500000000050a0433000005f4035001970000001f0a50018f00000000004c004b000014680000813d000000000003004b000014640000613d0000000002ac00190000000008a40019000000200980008a000000200d20008a000000000239001900000000083d001900000000080804330000000000820435000000200330008c0000145e0000c13d00000000000a004b0000147e0000613d0000000009040019000014740000013d0000000009340019000000000003004b000014710000613d000000000d0c0019000000000804001900000000d20d04340000000008280436000000000098004b0000146d0000c13d00000000000a004b0000147e0000613d000000000c3c00190000000302a00210000000000309043300000000032301cf000000000323022f00000000080c04330000010002200089000000000828022f00000000022801cf000000000232019f0000000000290435000000000771034f0000000001450019000005f4046001980000001f0560018f000000000001043500000000034100190000148b0000613d000000000907034f0000000008010019000000009209043c0000000008280436000000000038004b000014870000c13d000000000005004b000014980000613d000000000247034f0000000304500210000000000503043300000000054501cf000000000545022f000000000202043b0000010004400089000000000242022f00000000024201cf000000000252019f00000000002304350000000001610019000000000001043500000000040b0433000005f4034001970000001f0540018f0000000d0010006b000014af0000813d000000000003004b000014ab0000613d0000000d025000290000000006510019000000200660008a000000200720008a0000000002360019000000000837001900000000080804330000000000820435000000200330008c000014a50000c13d000000000005004b000014c60000613d0000000006010019000014bb0000013d0000000006310019000000000003004b000014b80000613d0000000d07000029000000000801001900000000720704340000000008280436000000000068004b000014b40000c13d000000000005004b000014c60000613d000d000d0030002d0000000302500210000000000306043300000000032301cf000000000323022f0000000d0500002900000000050504330000010002200089000000000525022f00000000022501cf000000000232019f0000000000260435000000000114001900000000000104350000000c030000290000000001310049000000200210008a00000000002304350000001f01100039000005f4021001970000000001320019000000000021004b00000000030000390000000103004039000005a30010009c0000159c0000213d00000001003001900000159c0000c13d000000400010043f00000009010000290000059b0010009c0000059b0100804100000040011002100000000c0200002900000000020204330000059b0020009c0000059b020080410000006002200210000000000112019f00000000020004140000059b0020009c0000059b02008041000000c002200210000000000112019f000005a6011001c70000801002000039166616570000040f0000000100200190000000de0000613d0000001103000367000000000101043b000d00000001001d0000000f02000029000000e404200039000000000143034f000000000101043b000005a500100198000c00000004001d0000150e0000c13d000000400140008a000000000113034f000000800240008a000000000423034f000000000404043b000000000501043b00000000015400a9000000000005004b000015010000613d00000000055100d9000000000045004b000015080000c13d000000c002200039000000000223034f000000000202043b000000000012001a000015080000413d0000000001120019000015110000013d000005f101000041000000000010043f0000001101000039000000040010043f000005f20100004100001668000104300000012401200039000000000113034f000000000101043b000f00000001001d000005ea0100004100000000001004430000000001000410000000040010044300000000010004140000059b0010009c0000059b01008041000000c001100210000005c4011001c70000800a02000039166616570000040f0000000100200190000015320000613d000000000101043b0000000f0010006b000015330000a13d0000000001000410001000000001001d0000800a0100003900000024030000390000000004000415000000100440008a0000000504400210000005ea020000411666163b0000040f000005f002000041000000000020043f0000000f02000029000000040020043f000000240010043f000005c5010000410000166800010430000000000001042f0000000c0100002900000100011000390000001103000367000000000113034f000000000101043b00000000050000310000000e0250006a0000001f0220008a000005aa04200197000005aa06100197000000000746013f000000000046004b0000000004000019000005aa04004041000000000021004b0000000002000019000005aa02008041000005aa0070009c000000000402c019000000000004004b000000de0000c13d0000000e02100029000000000123034f000000000101043b000005a30010009c000000de0000213d00000000041500490000002006200039000005aa02400197000005aa07600197000000000827013f000000000027004b0000000002000019000005aa02004041000000000046004b0000000004000019000005aa04002041000005aa0080009c000000000204c019000000000002004b000000de0000c13d0000001f02100039000005f4022001970000003f02200039000005f404200197000000400200043d0000000004420019000000000024004b00000000080000390000000108004039000005a30040009c0000159c0000213d00000001008001900000159c0000c13d000000400040043f00000000041204360000000008610019000000000058004b000000de0000213d000000000563034f000005f4061001980000001f0710018f0000000003640019000015790000613d000000000805034f0000000009040019000000008a08043c0000000009a90436000000000039004b000015750000c13d000000000007004b000015860000613d000000000565034f0000000306700210000000000703043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000530435000000000114001900000000000104350000000001020433000000410010008c000015a20000c13d00000041012000390000000001010433000000ff0110018f0000001b0310008a000000020030008c000015a80000813d00000040022000390000000002020433000005ec0020009c000015ac0000413d000005eb01000041000000000010043f0000000201000039000000040010043f000000240020043f000005c5010000410000166800010430000005f101000041000000000010043f0000004101000039000000040010043f000005f2010000410000166800010430000005eb02000041000000000020043f000000040000043f000000240010043f000005c5010000410000166800010430000005eb02000041000000000020043f00000001020000390000152e0000013d0000000003040433000000400400043d0000006005400039000000000025043500000040024000390000000000320435000000200240003900000000001204350000000d010000290000000000140435000000000000043f0000059b0040009c0000059b04008041000000400140021000000000020004140000059b0020009c0000059b02008041000000c002200210000000000112019f000005ed011001c70000000102000039166616570000040f00000060031002700000059b03300197000000200030008c000000200400003900000000040340190000001f0540018f0000002004400190000015d00000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b000015cc0000c13d000000000005004b000015dd0000613d000000000641034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000400400043d0000000100200190000015f30000613d000000000100043d000005a5011001970000000002000410000000000021004b0000000002000039000000010200c039000000000001004b0000000001000039000000010100603900000000001201a0000005ab01000041000000110110017f000005ee0100604100000000001404350000059b0040009c0000059b040080410000004001400210000005ef011001c7000016670001042e0000001f0530018f000005b4063001980000000002640019000015fd0000613d000000000701034f0000000008040019000000007907043c0000000008980436000000000028004b000015f90000c13d000000000005004b0000160a0000613d000000000161034f0000000305500210000000000602043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000012043500000060013002100000059b0040009c0000059b040080410000004002400210000000000112019f00001668000104300000001f0430018f000005b402300198000016190000613d000000000501034f0000000006000019000000005705043c0000000006760436000000000026004b000016150000c13d000000000004004b000016260000613d000000000121034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000001668000104300000000007640019000000000006004b000016310000613d0000000c080000290000000009040019000000008a0804340000000009a90436000000000079004b0000162d0000c13d000000000005004b00000b0d0000613d000c000c0060002d0000000305500210000000000607043300000000065601cf000000000656022f0000000c0800002900000b070000013d000000000001042f00000000050100190000000000200443000000040030008c000016420000a13d0000000501400270000000000101003100000004001004430000059b0030009c0000059b03008041000000600130021000000000020004140000059b0020009c0000059b02008041000000c002200210000000000112019f000005f5011001c70000000002050019166616570000040f0000000100200190000016510000613d000000000101043b000000000001042d000000000001042f00001655002104210000000102000039000000000001042d0000000002000019000000000001042d0000165a002104230000000102000039000000000001042d0000000002000019000000000001042d0000165f002104210000000102000039000000000001042d0000000002000019000000000001042d00001664002104230000000102000039000000000001042d0000000002000019000000000001042d0000166600000432000016670001042e000016680001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee000000000000000000000000000000000000000000000000ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000001f70c58f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000000000009c4d535affffffffffffffffffffffffffffffffffffffffffffffffffffffff9c4d535b00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffe0ff31160100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f00000000000000000000000000000000000000000000000000000000ffffffbb00000000000000000000000000000000ffffffe40000000000000000000000000100000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe08c5a344500000000000000000000000000000000000000000000000000000000949431dc00000000000000000000000000000000000000000000000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656408c379a0000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000440000000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000000000000000000000000000000000000000000064000000000000000000000000ff15b06900000000000000000000000000000000000000000000000000000000b4fa3fb300000000000000000000000000000000000000000000000000000000e1239cd8000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000024000000a000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b8000000000000000000000000000000000000000000000000000000000000008100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0f4a271b500000000000000000000000000000000000000000000000000000000848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000035278d120000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3990f049c9000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a10000000000000000000000000000000000000080000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000003eb8b54000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000017a8441500000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe002000002000000000000000000000000000000000000000000000000000000008698615bd42f4b2c4bad9d9c037c3abbd88bac9d0d739351f14fc86b7f00a3e3", "blockHash": "0x8008b61c2d767fca5c705f9bc268e2912c29e77855709137a81acc30db6e3a61", @@ -2781,7 +2781,7 @@ "address": "0xc9f20fc268fc3e0e597660550033bf2c24218fd8", "topics": [ "0x00e403ec52d56843d21d3a103d6e0df67a220869cea503706fcd690e61bce9ca", - "0x01000d83e0329d9144ad041430fafcbc2b388e5434db8cb8a96e80157738a1da" + "0x01000d8bae37b82f311186426184866498b357f41d7a02ced11f3e3fbfbacd63" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000001b06000130000000000020011000000000002000000600310027000000d410430019700020000004103550003000000410355000400000041035500050000004103550006000000410355000700000041035500080000004103550009000000410355000a000000410355000b000000410355000c000000410355000d000000410355000e000000410355000f00000041035500100000004103550011000000410355001200000001035500000d410030019d000100000002001f000000000100041100000d42011001c7000000000010043f0000000100200190000000350000c13d0000000001000414000000c00110021000000d43011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d000000600210027000000d4103200198000100000003001d000000610000c13d00000004010000390000000002000414000007d00220008c0000000004000019000000050420211a001100000004001d00000001001001880000000001000039000000010100c039000000690000013d0000000001000414000000c00110021000000d43011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d000000600210027000040d410020019c00000000020000190000004b0000613d0000002002000039000002e00020043f000000000201043b00030000000103550000000401000029000000200010008c000026e10000213d00000012010003670002000000010355000000600110027000000d4101100197000a00000001001d0000c0010010008c0000005b0000813d0000000a01000029000084400010043f000000040000006b000000960000c13d0000000001000414000007d00110008c0000005b0000a13d00000d440010009c000000940000813d000000000000043f000002e00100043d00000d410010009c00000d4101008041000000600110021000002c89000104300000002002000039000002e00020043f000000000201043b001100000002001d0003000000010355000000200030008c00000000010000390000000101002039000d00000001001d00000d4801000041000000000010043f0000000001000412000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f0000000100200190000026e10000613d000000000201043b001000000002001d0003000000010355000000000020043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d6e011001c700008012020000392c872c7d0000040f00000420080000390000000d03000029000000010330018f000c00000003001d00030d54003001cb0000001003000029000000e0033002700000ffff0330018f0002000000010355000700000003001d000084400030043f0000000201000367000000000101043b000000f801100270000000110e000029000000000a000019000000000d00001900000c320001013e000000050110011a00007d000210008a00000420080000390000000203000367000000000303043b000000f803300270000000000a000019000000000d000019000000000e02001900000b230003013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000aa10019000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000aa100a9000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000a1a0049000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000002080433000000000002004b000000000100001900000000012ac0d9000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000002080433000000000002004b0000000001000019000000eb0000613d00000d7100a0009c000000df0000c13d00000d710100004100000d780020009c000000eb0000613d00000d712120012c00000d710220c09900000d7143a0012c000000000313013f00000d710440c09900000000012400d9000000ff023002120000000003120049000000000223019f0000000002016019000000000001004b000000000102c019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000002080433000000000002004b000000000100001900000000102ac0d9000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000002080433000000000002004b0000000001000019000001180000613d00000d7100a0009c0000010e0000c13d00000d780020009c0000000001000019000001180000613d00000d711020012c00000d710110c09900000d7120a0012c00000d710220c09900000000101200d900000d7100a001980000000002010019000000000220c089000000000001004b000000000102c019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000000a2400490000000202d00367000000000202043b000000f802200270000000000801001900000b230002013e000000080ee0008c0000005b0000413d000000400180008a000004400010008c0000005b0000413d0000000002010433000000000002004b000000010dd000390000000003000019000001360000613d00000000502a00d9000000200380008a000000000303043300000000602300d9000000000456001900000000302400d9000000000056001a0000011e0000413d0000000202d00367000000000202043b000000f802200270000000000a030019000000000801001900000b230002013e000000080ee0008c0000005b0000413d000000400180008a000004400010008c0000005b0000413d0000000003010433000000000003004b000000010dd000390000000002000019000001a60000613d00000000203a00d9000000200480008a000000000404043300000000403400d900000d4d0030009c000001530000213d00000000022400a900000000a03200d90000000202d00367000000000202043b000000f802200270000000000801001900000b230002013e00000000452400a9000000000043004b000000010200008a000001a60000a13d00000d720030009c000000c0020000390000008002004039000000000623022f0000004002000039000000800200403900000d730060009c000000200220808a000000200660827000000d740060009c000000100220808a0000001006608270000001000060008c000000080220808a0000000806608270000000100060008c00000000070600190000000407708270000000040070008c000000000807001900000002088082700000000009800089000000020080008c000000020900808a000000100060008c000000040220808a000000040070008c000000020220808a0000000002290019000000ff0620018f00000000046401cf00000d7806200167000000ff0660018f0000000107500270000000000667022f000000000764019f00000000032301cf000000800430027000000000a94700d900000000062501cf000000800860027000000d4d05300197000001860000013d000000000a4a0019000000010990008a00000d4d00a0009c0000018d0000813d00000d750090009c000001820000213d000000000b5900a9000000800ca00210000000000c8c019f0000000000cb004b000001820000213d00000d4d0990019700000000093900a90000008007700210000000000787019f000000000797004900000000984700d900000d4d06600197000001990000013d0000000009490019000000010880008a00000d4d0090009c000001a00000813d00000d750080009c000001950000213d000000000a5800a9000000800b900210000000000b6b019f0000000000ba004b000001950000213d00000d4d0480019700000000033400a90000008004700210000000000464019f0000000003340049000000000223022f0000000203d00367000000000303043b000000f803300270000000000a020019000000000801001900000b230003013e0000000a02e0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d00000001030000390000000001080433000000000001004b000001c40000613d0000000004010019000000000300001900000032033000390000000804400272000001b70000c13d000000000232004b0000005b0000413d000000010300003900000001001001900000000005aa00a9000000010a00603900000000033a00a90000000101100272000000000a050019000001bd0000c13d000000000e020019000000000a030019000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d00000000010804330000001e00a0008c000001d50000a13d000000000a010019000001df0000013d0000000302a0021000000007022001bf00000d780320021f000000000421022f00000001004001900000000003006019000001000220008900000000012101cf000000000121022f000000000a13019f000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000000001a004b000000000a000039000000010a004039000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000000001a004b000000000a000039000000010a002039000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000000001a004b000000000200001900000d710200404100000d7103a0019700000d7101100197000000000413013f000000000013004b000000000100001900000d710100204100000d710040009c000000000102c019000000010dd00039000000000001004b000000000a000039000000010a00c0390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000000001a004b000000000200001900000d710200204100000d7103a0019700000d7101100197000000000413013f000000000013004b000000000100001900000d710100404100000d710040009c000000000102c019000000010dd00039000000000001004b000000000a000039000000010a00c0390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000000001a004b000000000a000039000000010a006039000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000004400080008c0000005b0000413d000000010dd0003900000000000a004b000000000a000039000000010a0060390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000aa1016f000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000aa1019f000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000aa1013f000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000004400080008c0000005b0000413d00000d780aa00167000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d00000000010804330000000302a0021000000000012101cf000000f8011002700000001f00a0008c0000000001002019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d00000000010804330000000001a101cf000000ff00a0008c0000000001002019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d00000000010804330000000001a1022f000000ff00a0008c0000000001002019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000d710210019700000d710020009c000000010200008a000000000200c019000000ff00a0008c000000ff0a0080390000010003a0008900000000023201cf0000000003a1022f000000000223019f00000000000a004b000000000102c019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e0000001e02e0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000001004b0000000004000019000002de0000613d00000d780310016700000000003a004b0000005b0000213d0000000003a1001900000d450030009c0000005b0000213d0000001f033000390000000503300270000084600600043d000000000563004b0000000004000019000002de0000a13d00000000046600a9000000090440027000000000063300a900000009066002700000000004460049000084600030043f00000003035000c900000000043400190000001f03100039000000050330027000000006033000c90000000003340019000000000232004b0000005b0000413d000f00000008001d001000000002001d00110000000d001d0000848002a0003900000d410020009c00000d41020080410000004002200210000000000001004b000000000200601900000d410010009c00000d41010080410000006001100210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f00000d4b011001c700008010020000392c872c7d0000040f0000000100200190000026e10000613d000000110d000029000000010dd00039000000000a01043b0000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000b230001013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000000a000410000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000e006400e000940000005b0000413d000004400080008c0000005b0000413d000f00000008001d00100000000e001d00110000000d001d00000d4601a00197000d00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d00000d4700100198000003280000613d0000000e010000290000032d0000013d0000000e01000029000009c40010008c00000010010000290000005b0000413d00000a280110008a001000000001001d00000d590100004100000000001004430000000d010000290000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800a020000392c872c7d0000040f0000000100200190000026e00000613d000000110d000029000000010dd00039000000000a01043b0000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000b230001013e000000020ee0008c0000005b0000413d000003000100043d000000000001004b0000035e0000c13d000f00000008001d000e0000000a001d00100000000e001d00110000000d001d00000d70010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003000010043f000000110d000029000000100e0000290000000e0a0000290000000f080000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000201d00367000000000101043b000000f801100270000000000a00041100000b230001013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000000a000416000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d000004400080008c0000005b0000413d000000010dd000390000000201d00367000000000101043b000000f801100270000000000a00001900000b230001013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000201d00367000000000101043b000000f801100270000000000a00001900000b230001013e0000000303e0008c0000005b0000413d000000400480008a000004400040008c0000005b0000413d000000600180008a0000000002010433000000200580008a00000000050504330000000004040433000000000004004b0000000007000019000003b30000613d00000d780640016700000000006a004b0000005b0000213d0000000006a4001900000d450060009c0000005b0000213d0000001f066000390000000506600270000084600900043d000000000896004b0000000007000019000003b30000a13d00000000079900a9000000090770027000000000096600a900000009099002700000000007790049000084600060043f00000003068000c900000000076700190000001f06400039000000050660027000000003066000c90000000006670019000000000e63004b0000005b0000413d00000d5c0050009c00000d5c0500804100000000064500190000848003a0003900000d4e0060009c000003d10000413d00000d5c055000990000000007350019000000000654004900000d79046001970000000004740019000000000074004b000003c90000a13d0000000007070436000000000047004b000003c60000413d0000001f06600190000003d20000613d0000000306600210000000000704043300000000076701cf000000000667022f0000000000640435000003d20000013d0000000005040019000000000005004b000003e20000613d00000d79045001970000000004340019000000000034004b000003db0000a13d0000000003030436000000000043004b000003d80000413d0000001f03500190000003e20000613d0000000303300210000000000504043300000000053501cf000000000335022f0000000000340435000000010dd000390000000203d00367000000000303043b000000f803300270000000000a020019000000000801001900000b230003013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000201d00367000000000101043b000000f8011002700000000a0a00002900000b230001013e0000000304e0008c0000005b0000413d000000400580008a000004400050008c0000005b0000413d000000600180008a0000000002010433000000200380008a00000000030304330000000005050433000000000005004b0000000007000019000004150000613d00000d780650016700000000006a004b0000005b0000213d0000000006a5001900000d450060009c0000005b0000213d0000001f066000390000000506600270000084600900043d000000000896004b0000000007000019000004150000a13d00000000079900a9000000090770027000000000096600a900000009099002700000000007790049000084600060043f00000003068000c900000000076700190000001f06500039000000050660027000000003066000c90000000006670019000000000e64004b0000005b0000413d0000000a07000029000000000073004b000000000307801900000000065300190000848004a00039000000000076004b000004340000a13d00000000063700490000000008460019000000000765004900000d79057001970000000005850019000000000085004b0000042c0000a13d0000000008080436000000000058004b000004290000413d0000001f07700190000004350000613d0000000307700210000000000805043300000000087801cf000000000778022f0000000000750435000004350000013d0000000006050019000000000006004b0000044e0000613d00000d79056001980000001f0660018f00000002073003670000000003540019000004410000613d000000000807034f000000008908043c0000000004940436000000000034004b0000043d0000c13d000000000006004b0000044e0000613d000000000457034f0000000305600210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f0000000000430435000000010dd000390000000203d00367000000000303043b000000f803300270000000000a020019000000000801001900000b230003013e000000020ee0008c0000005b0000413d000003200100043d000000000001004b0000046f0000c13d000f00000008001d000e0000000a001d00100000000e001d00110000000d001d00000d6f010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003200010043f000000110d000029000000100e0000290000000e0a0000290000000f080000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e0000000201d00367000000000101043b000000f801100270000000000a000019000000100e0000290000000f0800002900000b230001013e000d006400e000940000005b0000413d000004400080008c0000005b0000413d000f00000008001d00100000000e001d00110000000d001d00000d4601a00197000e00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d00000d4700100198000004980000613d0000000d010000290000049d0000013d0000000d01000029000009c40010008c00000010010000290000005b0000413d00000a280110008a001000000001001d00000d4801000041000000000010043f0000000e01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f0000000100200190000026e10000613d000000000201043b0003000000010355000000f801200270000000010010008c000004bc0000613d000000020010008c000000110d000029000000010dd00039000004780000c13d000000e0012002700000ffff0a10018f0000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000b230001013e00000d570100004100000000001004430000000e010000290000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c700008002020000392c872c7d0000040f0000000100200190000026e00000613d000000000a01043b000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000b230001013e0000006406e0008c0000005b0000413d000000600180008a000004400010008c0000005b0000413d000000800280008a000c00000002001d0000000002020433000b00000002001d000000400280008a0000000002020433000800000002001d000000200280008a0000000002020433000f00000002001d0000000005010433000000000005004b0000000004000019000004f90000613d00000d78015001670000000f0010006b0000005b0000213d0000000f0150002900000d450010009c0000005b0000213d0000001f011000390000000501100270000084600300043d000000000231004b0000000004000019000004f90000a13d00000000033300a9000000090330027000000000041100a900000009044002700000000003340049000084600010043f00000003012000c90000000004130019000d00000004001d001000000006001d000e00000005001d00110000000d001d00000d4601a00197000900000001001d000000000010043f0000000001000414000000c00110021000000d43011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d0000000e030000290000001f02300039000000050220027000000003022000c90000000d0220002900000d4700100198000009c402206039000000100e20006b000000110d0000290000005b0000413d000000000003004b000005820000613d00100000000e001d00000d4801000041000000000010043f0000000901000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f0000000100200190000026e10000613d0000000f02000029000f84800020003d000000000201043b0003000000010355000d00000002001d000000000020043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d6e011001c700008012020000392c872c7d0000040f000000010020019000000000040000190000000e06000029000005680000613d000000600210027000000d41032001970000000d0400002900000d5502400197000000e0044002700000ffff0440018f00000d5b0020009c0000000504406210000000000064004b0000000004068019000000080030006b00000000020300190000000802004029000000000542001900000000070200190000000002230049000000000035004b000000000204a019000000000002004b0000000004000019000005680000613d0000000004720019000000000034004b000026e10000213d000000000371034f00000d79042001980000001f0520018f0000000f01400029000005590000613d000000000603034f0000000f07000029000000006806043c0000000007870436000000000017004b000005550000c13d000000000005004b000005660000613d000000000343034f0000000304500210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000000040200190000000e06000029000000000246004b000000110d000029000000100e000029000005820000a13d0000000f0340002900000d79012001970000000001310019000000000031004b000005740000a13d0000000003030436000000000013004b000005710000413d0000001f02200190000005820000613d0000000302200210000000000301043300000000032301cf000000000223022f0000000000210435000000010dd000390000000201d00367000000000101043b000000f8011002700000000b0a0000290000000c0800002900000b230001013e000000010dd000390000000201d00367000000000101043b000000f8011002700000000b0a0000290000000c0800002900000b230001013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000004000100043d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e0000000305e0008c0000005b0000413d000000400480008a000004400040008c0000005b0000413d000000600180008a0000000002010433000000200380008a00000000030304330000000004040433000000000004004b0000000007000019000005b60000613d00000d780640016700000000006a004b0000005b0000213d0000000006a4001900000d450060009c0000005b0000213d0000001f066000390000000506600270000084600900043d000000000896004b0000000007000019000005b60000a13d00000000079900a9000000090770027000000000096600a900000009099002700000000007790049000084600060043f00000003068000c900000000076700190000001f06400039000000050660027000000003066000c90000000006670019000000000e65004b0000005b0000413d00000d7805400167000000000053004b0000005b0000213d0000000005340019000004000600043d000000000065004b0000005b0000213d00000d79054001980000001f0440018f00000004063003670000848007a000390000000003570019000005ce0000613d000000000806034f000000008908043c0000000007970436000000000037004b000005ca0000c13d000000000004004b000005db0000613d000000000556034f0000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f0000000000430435000000010dd000390000000203d00367000000000303043b000000f803300270000000000a020019000000000801001900000b230003013e0000000e01000029000001000010008c000005e70000413d00000d4f00a001980000060b0000c13d00000d5a01000041000000000010043f0000000e01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008003020000392c872c7d0000040f0000000100200190000026e10000613d000000000201043b0003000000010355000000000002004b000005fa0000613d00000d6c0a0000410000060b0000013d00000d590100004100000000001004430000000e010000290000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800a020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000000000001004b00000d6c0a000041000006130000613d000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000b230001013e000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000000a000019000000100e0000290000000f0800002900000b230001013e000d006400e000940000005b0000413d000004400080008c0000005b0000413d000f00000008001d00100000000e001d00110000000d001d00000d4601a00197000e00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d00000d4700100198000006350000613d0000000d010000290000063a0000013d0000000d01000029000009c40010008c00000010010000290000005b0000413d00000a280110008a001000000001001d00000d4801000041000000000010043f0000000e01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f0000000100200190000026e10000613d000000000a01043b000300000001035500000d4a01a0019700000d4b0010009c000005e20000c13d00000d6d01000041000000000010043f0000000400a0043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008015020000392c872c7d0000040f0000000100200190000026e10000613d000000000a01043b0003000000010355000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000b230001013e000000140ee0008c0000005b0000413d000004400080008c0000005b0000413d000f00000008001d00100000000e001d00110000000d001d00000d6b0100004100000000001004430000000400a00443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000110d000029000000010dd00039000000000a01043b0000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000b230001013e000000020ee0008c0000005b0000413d000003400100043d000000000001004b000006990000c13d000f00000008001d000e0000000a001d00100000000e001d00110000000d001d00000d6a010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003400010043f000000110d000029000000100e0000290000000e0a0000290000000f080000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000020ee0008c0000005b0000413d000003600100043d000000000001004b000006bc0000c13d000f00000008001d000e0000000a001d00100000000e001d00110000000d001d00000d69010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003600010043f000000110d000029000000100e0000290000000e0a0000290000000f080000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000020ee0008c0000005b0000413d000003800100043d000000000001004b000006df0000c13d000f00000008001d000e0000000a001d00100000000e001d00110000000d001d00000d68010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003800010043f000000110d000029000000100e0000290000000e0a0000290000000f080000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a8043600000d670a000041000000010dd000390000000201d00367000000000101043b000000f80110027000000b230001013e000000020ee0008c0000005b0000413d000003a00100043d000000000001004b0000070d0000c13d000f00000008001d000e0000000a001d00100000000e001d00110000000d001d00000d66010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003a00010043f000000110d000029000000100e0000290000000e0a0000290000000f080000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000020ee0008c0000005b0000413d000003c00100043d000000000001004b000007300000c13d000f00000008001d000e0000000a001d00100000000e001d00110000000d001d00000d65010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003c00010043f000000110d000029000000100e0000290000000e0a0000290000000f080000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000050ee0008c0000005b0000413d000f00000008001d000e0000000a001d00100000000e001d00110000000d001d00000d5901000041000000000010044300000000010004100000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800a020000392c872c7d0000040f0000000100200190000026e00000613d0000000f080000290000841f0080008c000000110d000029000000100e0000290000000e020000290000005b0000213d000000000a01043b0000000008280436000000010dd000390000000202d00367000000000202043b000000f80220027000000b230002013e000000020ee0008c0000005b0000413d000003e00100043d000000000001004b000007730000c13d000f00000008001d000e0000000a001d00100000000e001d00110000000d001d00000d63010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003e00010043f000000110d000029000000100e0000290000000e0a0000290000000f080000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e000000020ee0008c0000005b0000413d000004400080008c0000005b0000413d000000010dd00039000000200880008a000000000a0804330000000201d00367000000000101043b000000f80110027000000b230001013e0000000301e0008c0000005b0000413d000004400080008c0000005b0000413d00000d6200a0009c0000005b0000213d0000003f02a000390000000502200270000084600500043d000000000352004b00000000040000190000079d0000a13d00000000045500a9000000090440027000000000052200a900000009055002700000000004450049000084600020043f00000003023000c90000000004240019000000000041004b0000005b0000413d000000000e410049000000010dd000390000848001a00039000000000a0104330000000201d00367000000000101043b000000f80110027000000b230001013e0000000301e0008c0000005b0000413d000000200280008a000004400020008c0000005b0000413d00000d6200a0009c0000005b0000213d0000000003020433000000400880008a00000000020804330000003f04a000390000000504400270000084600700043d000000000674004b0000000005000019000007bf0000a13d00000000057700a9000000090550027000000000074400a900000009077002700000000005570049000084600040043f00000003046000c90000000005450019000000000051004b0000005b0000413d0000848004a000390000000000340435000000000e510049000000010dd000390000000201d00367000000000101043b000000f801100270000000000a02001900000b230001013e0000000301e0008c0000005b0000413d000000200280008a000004400020008c0000005b0000413d00000d6000a0009c0000005b0000213d0000000003020433000000400880008a00000000020804330000002004a000390000000505400270000084600700043d000000000675004b0000000004000019000007e20000a13d00000000047700a9000000090440027000000000075500a900000009077002700000000004470049000084600050043f00000003056000c90000000004540019000000000041004b0000005b0000413d000000f8033002100000848005a00039000000000605043300000d6106600197000000000336019f0000000000350435000000000e410049000000010dd000390000000201d00367000000000101043b000000f801100270000000000a02001900000b230001013e000d006400e000940000005b0000413d000004400080008c0000005b0000413d000f00000008001d00100000000e001d00110000000d001d00000d5b01000041000000000010043f0000000100a0043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d5f011001c70000801302000039000e0000000a001d2c872c7d0000040f0000000e0a0000290000000100200190000026e10000613d00000d47001001980000080f0000613d000000000a0a041a000000110d000029000000010dd000390000000201d00367000000000101043b000000f8011002700000000d0e0000290000000f0800002900000b230001013e0000000d01000029000007d00010008c0000005b0000413d00000000020a041a00000d4b01000041000000000010043f0000000100a0043f000e00000002001d000000210020043f0000000001000414000000c00110021000000d5e011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d000000100e000029000008340ee0008a00000d4700100198000300000001c355000000110d000029000000010dd000390000000201d00367000000000101043b000000f8011002700000000e0a0000290000000f0800002900000b230001013e000000000075004b000008350000c13d000000000007004b0000000003040019000008350000613d0000000003020019000000000e3e004b0000005b0000413d000000000016041b0000000201d00367000000000101043b000000f8011002700000000b0a00002900000b230001013e000008fd00e0008c0000005b0000413d000000200180008a000004400010008c0000005b0000413d00100000000e001d00110000000d001d0000000001010433000d00000001001d000000400880008a000f00000008001d0000000001080433000b00000001001d00000000020a041a00000d4b01000041000000000010043f0000000100a0043f000c00000002001d000000210020043f0000000001000414000000c00110021000000d5e011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000e0000000a001d2c872c780000040f0000000e060000290000000100200190000026e10000613d000000110d000029000000010dd0003900000d47001001980000138802000039000056540400003900000898030000390000000c0700002900000000050700190000086b0000613d000000000501043b000300000001035500000b540200003900004e200400003900000064030000390000000d01000029000000000071004b000000100e0000290000000f080000290000082f0000c13d000000000e3e00490000000201d00367000000000101043b000000f8011002700000000b0a00002900000b230001013e000000090ee0008c0000005b0000413d000004400080008c0000005b0000413d00000d5c00a0009c0000005b0000213d000000200880008a00000000010804330000000202a00367000000000202043b00000d550220019700000d5d0020009c0000005b0000c13d000000010da000390000000202d00367000000000202043b000000f802200270000000000a01001900000b230002013e0000000a01e0008c0000005b0000413d000000200380008a000004400030008c0000005b0000413d000000400880008a00000000020804330000000003030433000000000003004b000008a30000613d00000d5c00a0009c0000005b0000213d0000000203a00367000000000303043b00000d550330019700000d5d0030009c0000005b0000c13d000000000001004b0000005b0000613d000000010da000390000000b0ee0008a0000000201d00367000000000101043b000000f801100270000000000a02001900000b230001013e000000010dd000390000000203d00367000000000303043b000000f803300270000000000a020019000000000e01001900000b230003013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a804360000000101d000390000000202100367000000000202043b000000f802200270000000000a0d0019000000000d01001900000b230002013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000084600100043d0000000008a80436000000010dd00039000000050a1002100000000201d00367000000000101043b000000f80110027000000b230001013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000201d00367000000000101043b000000f801100270000000000a0e001900000b230001013e00000000000e004b0000005b0000613d000000010dd00039000000010ee0008a0000000201d00367000000000101043b000000f80110027000000b230001013e000000640ee0008c0000005b0000413d000004400080008c0000005b0000413d000000010dd00039000000000a0a04460000000201d00367000000000101043b000000f80110027000000b230001013e000000640ee0008c0000005b0000413d000000200180008a000004400010008c0000005b0000413d0000000001010433000000400880008a000000000208043300000000001a0447000000010dd000390000000201d00367000000000101043b000000f801100270000000000a02001900000b230001013e0000000303e0008c0000005b0000413d000000400580008a000004400050008c0000005b0000413d000000600180008a0000000002010433000000200480008a00000000040404330000000005050433000000000005004b00000000060000190000000007000019000009030000613d00000d7806500167000000000064004b0000005b0000213d00000000006a004b0000005b0000213d0000000007a500190000000006450019000000000076004b000000000607a019000000000006004b0000000007000019000009180000613d00000d450060009c0000005b0000213d0000001f066000390000000506600270000084600900043d000000000896004b0000000007000019000009180000a13d00000000079900a9000000090770027000000000096600a900000009099002700000000007790049000084600060043f00000003068000c900000000076700190000001f06500039000000050660027000000003066000c90000000006670019000000000e63004b0000005b0000413d00000d79075001970000001f0650018f0000848005a000390000848003400039000000000053004b000009330000813d000000000007004b000009300000613d00000000086300190000000004650019000000200440008a000000200880008a0000000009740019000000000a780019000000000a0a04330000000000a90435000000200770008c0000092a0000c13d000000000006004b0000093f0000c13d000009490000013d0000000004750019000000000007004b0000093b0000613d000000000803001900000000890804340000000005950436000000000045004b000009370000c13d000000000006004b000009490000613d000000000373001900000000050400190000000304600210000000000605043300000000064601cf000000000646022f00000000030304330000010004400089000000000343022f00000000034301cf000000000363019f0000000000350435000000010dd000390000000203d00367000000000303043b000000f803300270000000000a020019000000000801001900000b230003013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000020dd00039000000f80a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000030dd00039000000f00a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000040dd00039000000e80a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000050dd00039000000e00a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000060dd00039000000d80a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000070dd00039000000d00a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000080dd00039000000c80a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000090dd00039000000c00a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000a0dd00039000000b80a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000b0dd00039000000b00a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000c0dd00039000000a80a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000d0dd00039000000a00a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000e0dd00039000000980a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000f0dd00039000000900a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000100dd00039000000880a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000110dd00039000000800a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000120dd00039000000780a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000130dd00039000000700a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000140dd00039000000680a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000150dd00039000000600a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000160dd00039000000580a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000170dd00039000000500a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000180dd00039000000480a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000190dd00039000000400a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001a0dd00039000000380a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001b0dd00039000000300a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001c0dd00039000000280a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001d0dd00039000000200a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001e0dd00039000000180a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001f0dd00039000000100a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000200dd00039000000080a1002700000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000210dd000390000000203d00367000000000303043b000000f803300270000000000a01001900000b230003013e000000030ee0008c0000005b0000413d000084200180008a00000d7a0010009c0000005b0000413d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f80220027000000b230002013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000000200180008a000004400010008c0000005b0000413d0000000008a80436000000010dd00039000000000a0104330000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000000400180008a000004400010008c0000005b0000413d0000000008a80436000000010dd00039000000000a0104330000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000000600180008a000004400010008c0000005b0000413d0000000008a80436000000010dd00039000000000a0104330000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000000800180008a000004400010008c0000005b0000413d0000000008a80436000000010dd00039000000000a0104330000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000000a00180008a000004400010008c0000005b0000413d0000000008a80436000000010dd00039000000000a0104330000000201d00367000000000101043b000000f80110027000000b230001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000000c00180008a000004400010008c0000005b0000413d0000000008a80436000000010dd00039000000000a0104330000000204d00367000000000404043b000000f80440027000000b230004013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000000e00280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000b230005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001000280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000b230005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001200280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000b230005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001400280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000b230005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001600280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000b230005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001800280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000b230005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001a00280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000b230005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001c00280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000b230005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001e00280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000b230005013e0000000301e0008c0000005b0000413d000000200280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000000400280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000000600280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000000800280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000000a00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000000c00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000000e00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000001000280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000001200280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000001400280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000001600280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000001800280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000001a00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000001c00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000001e00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000000301e0008c0000005b0000413d000002000280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000a030019000000000e01001900000b230004013e0000017706e0008c0000005b0000413d000000200180008a000004400010008c0000005b0000413d000000400780008a00000000080704330000000001010433000000000001004b0000000003000019000000000200001900000cfb0000613d00000d780210016700000000002a004b0000005b0000213d0000000002a1001900000d450020009c0000005b0000213d0000001f022000390000000502200270000084600500043d000000000352004b000000000400001900000cf60000a13d00000000045500a9000000090440027000000000052200a900000009055002700000000004450049000084600020043f00000003023000c9000000000424001900000003021002100000000003240019000000000036004b0000005b0000413d0000848002a00039000d00000003001d000e00000008001d000f00000007001d001000000006001d00110000000d001d00000d410010009c00000d4101008041000000600110021000000d410020009c00000d41020080410000004002200210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000121019f00000d4b011001c70000800d0200003900000000030000192c872c780000040f0000000100200190000026e10000613d0000000d02000029000000100e2000690000001102000029000000010d2000390000000203d00367000000000303043b000000f8033002700000000e0a0000290000000f0800002900000b230003013e0000017707e0008c0000005b0000413d000000400180008a000004400010008c0000005b0000413d0000000004010433000000200180008a0000000001010433000000000001004b00000d410000613d00000d780210016700000000002a004b0000005b0000213d0000000002a1001900000d450020009c0000005b0000213d0000001f022000390000000502200270000084600600043d000000000362004b000000000500001900000d3a0000a13d00000000056600a9000000090550027000000000062200a900000009066002700000000005560049000084600020043f00000003023000c9000000000525001900000003021002100000000002520019001001770020003d000000100070006c0000005b0000413d0000848002a0003900000d450000013d000001770070008c001001770000003d00000000020000190000005b0000413d000f00000007001d00110000000d001d00000d410010009c00000d4101008041000000600110021000000d410020009c00000d41020080410000004002200210000000000112019f000000600280008a000e00000002001d0000000002020433000d00000002001d000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f00000d4b011001c70000800d0200003900000001030000392c872c780000040f0000000100200190000026e10000613d00000010020000290000000f0e2000690000001102000029000000010d2000390000000203d00367000000000303043b000000f8033002700000000d0a0000290000000e0800002900000b230003013e0000017709e0008c0000005b0000413d000000600180008a000004400010008c0000005b0000413d000000400280008a0000000004020433000000200280008a0000000002020433000000000002004b00000d8d0000613d00000d780320016700000000003a004b0000005b0000213d0000000003a2001900000d450030009c0000005b0000213d0000001f033000390000000503300270000084600700043d000000000573004b000000000600001900000d860000a13d00000000067700a9000000090660027000000000073300a900000009077002700000000006670049000084600030043f00000003035000c9000000000636001900000003032002100000000003630019001002ee0030003d000000100090006c0000005b0000413d0000848003a0003900000d910000013d000002ee0090008c001002ee0000003d00000000030000190000005b0000413d000f00000009001d00110000000d001d00000d410020009c00000d4102008041000000600220021000000d410030009c00000d41030080410000004003300210000000000223019f0000000005010433000000800180008a000e00000001001d0000000001010433000d00000001001d000000000100041400000d410010009c00000d4101008041000000c001100210000000000121019f00000d4b011001c70000800d0200003900000002030000392c872c780000040f0000000100200190000026e10000613d00000010020000290000000f0e2000690000001102000029000000010d2000390000000203d00367000000000303043b000000f8033002700000000d0a0000290000000e0800002900000b230003013e0000017709e0008c0000005b0000413d000000800180008a000004400010008c0000005b0000413d000000400280008a0000000004020433000000200280008a0000000002020433000000000002004b00000dda0000613d00000d780320016700000000003a004b0000005b0000213d0000000003a2001900000d450030009c0000005b0000213d0000001f033000390000000503300270000084600700043d000000000573004b000000000600001900000dd30000a13d00000000067700a9000000090660027000000000073300a900000009077002700000000006670049000084600030043f00000003035000c9000000000636001900000003032002100000000003630019001004650030003d000000100090006c0000005b0000413d0000848003a0003900000dde0000013d000004650090008c001004650000003d00000000030000190000005b0000413d000f00000009001d00110000000d001d00000d410020009c00000d4102008041000000600220021000000d410030009c00000d41030080410000004003300210000000000223019f0000000006010433000000600180008a0000000005010433000000a00180008a000e00000001001d0000000001010433000d00000001001d000000000100041400000d410010009c00000d4101008041000000c001100210000000000121019f00000d4b011001c70000800d0200003900000003030000392c872c780000040f0000000100200190000026e10000613d00000010020000290000000f0e2000690000001102000029000000010d2000390000000203d00367000000000303043b000000f8033002700000000d0a0000290000000e0800002900000b230003013e0000017709e0008c0000005b0000413d000000a00180008a000004400010008c0000005b0000413d000000400280008a0000000004020433000000200280008a0000000002020433000000000002004b00000e290000613d00000d780320016700000000003a004b0000005b0000213d0000000003a2001900000d450030009c0000005b0000213d0000001f033000390000000503300270000084600700043d000000000573004b000000000600001900000e220000a13d00000000067700a9000000090660027000000000073300a900000009077002700000000006670049000084600030043f00000003035000c9000000000636001900000003032002100000000003630019001005dc0030003d000000100090006c0000005b0000413d0000848003a0003900000e2d0000013d000005dc0090008c001005dc0000003d00000000030000190000005b0000413d000f00000009001d00110000000d001d00000d410020009c00000d4102008041000000600220021000000d410030009c00000d41030080410000004003300210000000000223019f0000000007010433000000800180008a0000000006010433000000600180008a0000000005010433000000c00180008a000e00000001001d0000000001010433000d00000001001d000000000100041400000d410010009c00000d4101008041000000c001100210000000000121019f00000d4b011001c70000800d0200003900000004030000392c872c780000040f0000000100200190000026e10000613d00000010020000290000000f0e2000690000001102000029000000010d2000390000000203d00367000000000303043b000000f8033002700000000d0a0000290000000e0800002900000b230003013e00007d0004e0008c0000005b0000413d000000400180008a000004400010008c0000005b0000413d0000000002010433001000000001001d000000200180008a000000000101043300000000030a00190000000005000019000000000600001900110000000d001d2c872b480000040f0000001103000029000000010d300039000000000a0200190000000204d00367000000000404043b000000f8044002700000001008000029000000000e01001900000b230004013e000000c00180008a000b00000001001d000004400010008c0000005b0000413d000000a00180008a0000000007010433000000800180008a0000000006010433000000600180008a0000000001010433000c00000001001d000000400180008a0000000001010433000d00000001001d000000200180008a00000000010104330000000b020000290000000003020433000000000003004b000000000200001900000e850000613d00000d7802300167000000000027004b0000005b0000213d00000000040300190000000002740019000700000003001d000000000006004b000000000300001900000e8d0000613d00000d78036001670000000c0030006b0000005b0000213d0000000c03600029000000000032004b000000000203a019000000000002004b000000000500001900000ea20000613d00000d450020009c0000005b0000213d0000001f022000390000000502200270000084600400043d000000000342004b000000000500001900000ea20000a13d00000000044400a9000000090440027000000000052200a900000009055002700000000004450049000084600020043f00000003023000c90000000005240019000900000005001d000800000007001d000600000006001d00100000000e001d00110000000d001d00000d4601100197000f00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000e0000000a001d2c872c780000040f00000001002001900000000d02000029000026e10000613d00000d4700100198000000640100003900000a28010060390000000901100029000000000002004b00000ef80000613d000900000001001d00000d570100004100000000001004430000000f010000290000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c700008002020000392c872c7d0000040f0000000100200190000026e00000613d00000009020000290000232804200039000000000101043b000000000001004b00000ef90000c13d000500000004001d00000d590100004100000000001004430000000f010000290000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800a020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000000000001004b000000050400002900000ef90000c13d00000d5a01000041000000000010043f0000000f01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008003020000392c872c7d0000040f0000000100200190000026e10000613d000000000201043b0003000000010355000000000002004b0000000f02000029000000050400002900000efa0000c13d0000000901000029000084d00410003900000efa0000013d00000000040100190000000f0200002900100010004000730000005b0000413d00000d4801000041000000000010043f000000040020043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f0000001004000029000000060340027000000000033400490000000e0030006c0000000e03008029000008fc043000390000000d0c00002900000000000c004b000e00000003001d000000000904001900000000090360190000000100200190000026e10000613d0000000c0200002900008480082000390000000802000029000084800d200039000000000201043b000300000001035500000d4a0120019700000d4b0010009c00000f440000c13d000900000008001d000c0000000d001d00000000000c004b00000f570000613d000500000004001d000800000009001d00000d5901000041000000000010044300000000010004100000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800a020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b0000000d0010006c0000000809000029000000050300002900000f570000813d0000000401000367000000600210027000000d410220019700040000002103e5000004000000043f0000000e020000290000001001200069000000000e3100190000001102000029000000010d2000390000000203d00367000000000303043b000000f803300270000000000a0000190000000b0800002900000b230003013e0000000f0f0000290000000401f0008a000000040010008c000000060e00a02900000c2d0001a13e00000bb8050000390000000100f0008c000000110b000029000000060e000029000010680000613d0000000200f0008c000010310000c13d0000001f01e0003900000005011002700000000c011000c90000003c05100039000000000159004b0000106a0000413d000010c20000013d00000d5401000041000000000010043f000000200090043f0000000001000414000000c00110021000000d51011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000d030000290000000100200190000026e10000613d000000090100002900000d410010009c00000d41010080410000004001100210000000060200002900000d410020009c00000d41020080410000006002200210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f000000000003004b00000f7b0000613d00000d4b011001c700008009020000390000000f04000029000000000500001900000f7c0000013d0000000f020000292c872c780000040f000000020300036700040000000303550002000000010355000000600410027000000d4105400197000000200450008c000026e10000413d000000000b01043b000000070040006c000000000704001900000f8c0000413d00000007070000290000002006700039000000000056004b000026e10000213d00000d79067001980000001f0770018f00000020011003700000000c0a00002900000000056a001900000f970000613d000000000801034f000000008908043c000000000a9a043600000000005a004b00000f930000c13d000000000007004b00000fa40000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000004000040043f00040000000103550002000000030355000000010a0000390000000100200190000011360000c13d00000d5201000041000000000010043f0000000001000414000000c00110021000000d53011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000f0000000b001d2c872c780000040f0000000f0b0000290000000100200190000000000a000019000011360000c13d000026e10000013d00000000038e001900000000010804330000000c02000029000084a002200039000000000032004b000000110b00002900000fcb0000a13d000000000083004b0000000004080019000000000403201900000000044200490000000304400210000000000141022f00000000014101cf000000ff0040008c000000000100201900000000040204330000000c05000029000084c005500039000000000035004b00000fd80000a13d000000000023004b000000000203201900000000022500490000000302200210000000000424022f00000000042401cf000000ff0020008c000000000400201900000000020504330000000c06000029000084e006600039000000000036004b00000fe50000a13d000000000053004b000000000503201900000000055600490000000305500210000000000252022f00000000025201cf000000ff0050008c000000000200201900000d4c05000041000000200010008c000010680000213d000000200040008c000010680000213d000000200020008c000010680000213d00000000066100190000000075060434000000000037004b00000ff80000a13d000000000063004b000000000306a01900000000033700490000000303300210000000000535022f00000000053501cf000000ff0030008c0000000005002019000000000004004b000010b30000613d0000000303400210000001000330008900000000043502310000000003000019000010b40000613d00000d4d0040009c00000000030000390000008003002039000000000434022f00000d4c0040009c00000000050000390000004005002039000000000454022f00000d410040009c00000000060000390000002006002039000000000464022f0000ffff0040008c00000000070000390000001007002039000000000474022f000000ff0040008c000900000008001d00000000080000390000000808002039000000000484022f0000000f0040008c000800000009001d00000000090000390000000409002039000000000494022f000000030040008c000000000a000039000000020a0020390000000004a4022f000000010040008c00000001033021bf000000000353019f000000000363019f000000000373019f000000000383019f0000000908000029000000000393019f00000008090000290000000003a3019f000010b40000013d0000001f01e00039000000050110027000000003011000c90000000f05100039000010670000013d000000c001e0011a000084d0011000c90000afc805100039000010670000013d000c0000000d001d00000000000f004b0000000003000039000000010300603900000d4f0020019800000001033061bf00000000000c004b00000000010000390000000101006039000800000003001d000000000031017000000005039000c9000001f40330c03900000d410080009c00000d4108008041000000400180021000000d4100e0009c00000d410e0080410000006002e00210000000000112019f00000d410030009c00000d4103008041000900000003001d000000c002300210000000000112019f0000000002000414000600000002001d00000000000c004b000010780000613d00000d4b011001c7000080090200003900000000030c001900000000040f001900000000050000192c872c780000040f000000600310027000000d4103300197000000070030006c000000070400002900000000040340190000001f0540018f00000d4e064001980000000c090000290000000004690019000010890000613d000000000701034f000000007807043c0000000009890436000000000049004b0000105f0000c13d000010890000013d0000009605000039000010670000013d0000177005000039000000110b000029000000000159004b000010c20000813d0000000401000367000000600210027000000d410220019700040000002103e5000004000000043f0000000e02000029000000100e200069000000010db000390000000203d00367000000000303043b000000f803300270000000000a0000190000000b0800002900000b230003013e00000000020f00192c872c780000040f000000600310027000000d4103300197000000070030006c000000070400002900000000040340190000001f0540018f00000d4e064001980000000c090000290000000004690019000010890000613d000000000701034f000000007807043c0000000009890436000000000049004b000010850000c13d000000000005004b000010960000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000110d0000290000001005000029000000080600002900000006070000290000000004000414000000000447004b00000000040040190004000000010355000004000030043f0000000100600190000010a60000613d0000000d0000006b0000000901000029000001f40110608a0000000004000019000010a70000013d0000000901000029000000000341004b0000000001000019000000050130211a000000010a20018f0000000e0250006a000000000e120019000000010dd000390000000201d00367000000000101043b000000f8011002700000000b0800002900000b230001013e0000000003000019000000000012004b000000000201a0190000000701200039000000030110027000000000011100a9000000010030008c000000010300a03900000000013100a90000ffff0110018f000000030510011a000000c80050008c000000c80500a039000000000159004b0000106a0000413d000900000001001d000c0000000d001d00000040018002100000006002e00210000000000112019f0000000002000414000000c002200210000000000121019f00000000000c004b000011010000613d00000d5b011001c7000080090200003900000000030c001900000000040f0019000000000500001900000000060000192c872c780000040f000000600310027000000d4103300197000000070000006b000000010220018f000011300000613d000000000002004b000011300000613d000000070030006c000000070200002900000000020340190000001f0420018f00000d4e052001980000000c080000290000000002580019000010e70000613d000000000601034f000000006706043c0000000008780436000000000028004b000010e30000c13d000000000004004b000000110d000029000010f50000613d000000000551034f0000000304400210000000000602043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004204350004000000010355000004000030043f000000010a0000390000000e020000290000001001200069000000090e100029000000010dd000390000000201d00367000000000101043b000000f8011002700000000b0800002900000b230001013e00000000020f00192c872c780000040f000000600310027000000d4103300197000000070030006c000000070400002900000000040340190000001f0540018f00000d4e064001980000000c090000290000000004690019000011120000613d000000000701034f000000007807043c0000000009890436000000000049004b0000110e0000c13d000000000005004b0000111f0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350004000000010355000004000030043f0000000100200190000000000a000019000000000b000019000011360000613d000000010a0000390000000e020000290000001001200069000000090e100029000000110d000029000000010dd000390000000201d00367000000000101043b000000f8011002700000000b0800002900000b230001013e0004000000010355000004000030043f000000000002004b000000000a000019000000000b000019000011250000c13d0000000e020000290000001001200069000000000eb10019000000110d000029000000010dd000390000000201d00367000000000101043b000000f8011002700000000b0800002900000b230001013e000000200280008a000004400020008c0000005b0000413d00000000010e00190000000002020433000000000002004b0000157f0000613d00000d780420016700000000004a004b0000005b0000213d0000000004a2001900000d450040009c0000005b0000213d0000001f044000390000000504400270000084600700043d000000000574004b00000000060000190000115b0000a13d00000000067700a9000000090660027000000000074400a900000009077002700000000006670049000084600040043f00000003045000c90000000006460019000060000020008c0000005b0000213d000000000161004b0000005b0000413d0000848003a00039000000000403043300000d550440019700000d560040009c0000005b0000613d000015810000013d000000a00180008a000c00000001001d000004400010008c0000005b0000413d000000800180008a0000000007010433000000600180008a0000000006010433000000400180008a0000000001010433000f00000001001d000000200180008a00000000010104330000000c020000290000000003020433000000000003004b00000000020000190000117c0000613d00000d7802300167000000000027004b0000005b0000213d00000000040300190000000002740019000800000003001d000000000006004b0000000003000019000011840000613d00000d78036001670000000f0030006b0000005b0000213d0000000f03600029000000000032004b000000000203a019000000000002004b0000000005000019000011990000613d00000d450020009c0000005b0000213d0000001f022000390000000502200270000084600400043d000000000342004b0000000005000019000011990000a13d00000000044400a9000000090440027000000000052200a900000009055002700000000004450049000084600020043f00000003023000c90000000005240019000b00000005001d000900000007001d000700000006001d00100000000e001d00110000000d001d00000d4601100197000d00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000e0000000a001d2c872c780000040f0000000100200190000026e10000613d00000d4700100198000000640100003900000a28010060390000000b0110002900100010001000730000005b0000413d00000d4801000041000000000010043f0000000d01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f00000010040000290000000603400270000000000c3400490000000e00c0006c0000000e0c0080290000000100200190000026e10000613d0000000f02000029000084800f2000390000000902000029000084800d200039000000000201043b000300000001035500000d4a0120019700000d4b0010009c0000122f0000c13d000e0000000d001d00000d5401000041000000000010043f0000002000c0043f0000000001000414000000c00110021000000d51011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000f0000000c001d000b0000000f001d2c872c780000040f0000000b010000290000000100200190000026e10000613d00000d410010009c00000d41010080410000004001100210000000070200002900000d410020009c00000d41020080410000006002200210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f0000000d020000292c872c820000040f0000000f0c000029000000020300036700040000000303550002000000010355000000600410027000000d4105400197000000200450008c000026e10000413d000000000b01043b000000080040006c0000000007040019000011ff0000413d00000008070000290000002006700039000000000056004b000026e10000213d00000d79067001980000001f0770018f00000020011003700000000e0a00002900000000056a00190000120a0000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000012060000c13d000000000007004b000012170000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000004000040043f00040000000103550002000000030355000000010a0000390000000100200190000013580000c13d00000d5201000041000000000010043f0000000001000414000000c00110021000000d53011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000e0000000b001d2c872c780000040f0000000e0b0000290000000f0c0000290000000100200190000000000a000019000013580000c13d000026e10000013d0000000d0e0000290000000401e0008a000000040010008c000000100800a02900000c280001a13e00000bb8050000390000000100e0008c000000110b0000290000001008000029000013010000613d0000000200e0008c000012b80000c13d00000007010000290000001f0110003900000005011002700000000c011000c90000003c0510003900000000015c004b000013030000413d0000131f0000013d0000000703f0002900000000010f04330000000f02000029000084a002200039000000000032004b000000110b000029000012530000a13d0000000000f3004b00000000040f0019000000000403201900000000044200490000000304400210000000000141022f00000000014101cf000000ff0040008c000000000100201900000000040204330000000f05000029000084c005500039000000000035004b000012600000a13d000000000023004b000000000203201900000000022500490000000302200210000000000424022f00000000042401cf000000ff0020008c000000000400201900000000020504330000000f06000029000084e006600039000000000036004b0000126d0000a13d000000000053004b000000000503201900000000055600490000000305500210000000000252022f00000000025201cf000000ff0050008c000000000200201900000d4c05000041000000200010008c000013010000213d000000200040008c000013010000213d000000200020008c000013010000213d00000000066100190000000075060434000000000037004b000012800000a13d000000000063004b000000000306a01900000000033700490000000303300210000000000535022f00000000053501cf000000ff0030008c0000000005002019000000000004004b000013100000613d0000000303400210000001000330008900000000043502310000000003000019000013110000613d00000d4d0040009c00000000030000390000008003002039000000000434022f00000d4c0040009c00000000050000390000004005002039000000000454022f00000d410040009c00000000060000390000002006002039000000000464022f0000ffff0040008c00000000070000390000001007002039000000000474022f000000ff0040008c00000000080000390000000808002039000000000484022f0000000f0040008c00000000090000390000000409002039000000000494022f000000030040008c000000000a000039000000020a0020390000000004a4022f000000010040008c00000001033021bf000000000353019f000000000363019f000000000373019f000000000383019f000000000393019f0000000003a3019f0000001008000029000013110000013d00000007010000290000001f01100039000000050110027000000003011000c90000000f05100039000013000000013d0000000701000029000000c00110011a000084d0011000c90000afc805100039000013000000013d000e0000000d001d0000000401000367000000600310027000000d410330019700040000003103e5000004000000043f00000000000e004b000012c40000613d00000d4f00200198000000000a000019000000000b0c0019000013580000c13d000f0000000c001d00000d4100f0009c00000d410f0080410000004001f00210000000070200002900000d410020009c00000d41020080410000006002200210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f0000000d020000292c872c820000040f000000010a20018f000000600210027000000d4102200197000000080020006c000000080300002900000000030240190000001f0430018f00000d4e053001980000000e080000290000000003580019000012e40000613d000000000601034f000000006706043c0000000008780436000000000038004b000012e00000c13d000000000004004b000000110d0000290000000f07000029000012f30000613d000000000551034f0000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350004000000010355000004000020043f0000001001700069000000000e710019000000010dd000390000000201d00367000000000101043b000000f8011002700000000c0800002900000b230001013e0000009605000039000013000000013d0000177005000039000000110b00002900000000015c004b0000131f0000813d0000000401000367000000600210027000000d410220019700040000002103e5000004000000043f000000000ec80049000000010db000390000000203d00367000000000303043b000000f803300270000000000a0000190000000c0800002900000b230003013e0000000003000019000000000012004b000000000201a0190000000701200039000000030110027000000000011100a9000000010030008c000000010300a03900000000013100a90000ffff0110018f000000030510011a000000c80050008c000000c80500a03900000000015c004b000013030000413d000b00000001001d000f0000000c001d0000004001f0021000000007020000290000006002200210000000000112019f0000000002000414000000c002200210000000000121019f00000000020e0019000e0000000d001d2c872c7d0000040f0000000e09000029000000600310027000000d4103300197000000080030006c000000080400002900000000040340190000001f0540018f00000d4e0640019800000000046900190000133a0000613d000000000701034f000000007807043c0000000009890436000000000049004b000013360000c13d000000000005004b000013470000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350004000000010355000004000030043f0000000100200190000000000a000019000000000b0000190000000f0c000029000013580000613d000000010a0000390000001002c000690000000b0e2000290000001103000029000000010d3000390000000204d00367000000000404043b000000f8044002700000000c0800002900000b230004013e0000001001c00069000000000eb10019000000110d000029000000010dd000390000000201d00367000000000101043b000000f8011002700000000c0800002900000b230001013e00007d0004e0008c0000005b0000413d000000600180008a000004400010008c0000005b0000413d0000000006010433001000000001001d000000400180008a0000000002010433000000200180008a0000000001010433000000010500003900000000030a001900110000000d001d2c872b480000040f0000001103000029000000010d300039000000000a0200190000000204d00367000000000404043b000000f8044002700000001008000029000000000e01001900000b230004013e000000a00180008a000d00000001001d000004400010008c0000005b0000413d000000800180008a0000000007010433000000600180008a0000000006010433000000400180008a0000000001010433000f00000001001d000000200180008a00000000010104330000000d020000290000000003020433000000000003004b0000000002000019000013900000613d00000d7802300167000000000027004b0000005b0000213d00000000040300190000000002740019000b00000003001d000000000006004b0000000003000019000013980000613d00000d78036001670000000f0030006b0000005b0000213d0000000f03600029000000000032004b000000000203a019000000000002004b0000000005000019000013ad0000613d00000d450020009c0000005b0000213d0000001f022000390000000502200270000084600400043d000000000342004b0000000005000019000013ad0000a13d00000000044400a9000000090440027000000000052200a900000009055002700000000004450049000084600020043f00000003023000c90000000005240019000900000005001d000800000007001d000700000006001d00100000000e001d00110000000d001d00000d4601100197000c00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000e0000000a001d2c872c780000040f0000000100200190000026e10000613d00000d4700100198000000640100003900000a2801006039000000090110002900100010001000730000005b0000413d00000d4801000041000000000010043f0000000c01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f00000010040000290000000603400270000000000c3400490000000e00c0006c0000000e0c0080290000000100200190000026e10000613d0000000f0200002900008480092000390000000802000029000084800d200039000000000201043b000300000001035500000d4a0120019700000d4b0010009c000e0000000c001d000014320000c13d000900000009001d000f0000000d001d00000d5001000041000000000010043f0000002000c0043f0000000001000414000000c00110021000000d51011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d000000090100002900000d410010009c00000d41010080410000004001100210000000070200002900000d410020009c00000d41020080410000006002200210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f0000000c020000292c872c780000040f0000000e0b000029000000020300036700040000000303550002000000010355000000600410027000000d4105400197000000200450008c000026e10000413d000000000c01043b0000000b0040006c0000000007040019000014130000413d0000000b070000290000002006700039000000000056004b000026e10000213d00000d79067001980000001f0770018f00000020011003700000000f0a00002900000000056a00190000141e0000613d000000000801034f000000008908043c000000000a9a043600000000005a004b0000141a0000c13d000000000007004b0000142b0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000004000040043f000400000001035500020000000303550000000100200190000014470000613d000000010a000039000015750000013d0000000c0f0000290000000401f0008a000000040010008c000000100800a029000000070e00a02900000c230001a13e0000000100f0008c00000bb805000039000000110b0000290000001008000029000000070e000029000015200000613d0000000200f0008c000014ce0000c13d0000001f01e0003900000005011002700000000c011000c90000003c0510003900000000015c004b000015220000413d0000153e0000013d00000d5201000041000000000010043f0000000001000414000000c00110021000000d53011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000f0000000c001d2c872c780000040f0000000f0c0000290000000e0b0000290000000100200190000000000a000019000015750000c13d000026e10000013d00000000039e001900000000010904330000000f02000029000084a002200039000000000032004b000000110b000029000014690000a13d000000000093004b0000000004090019000000000403201900000000044200490000000304400210000000000141022f00000000014101cf000000ff0040008c000000000100201900000000040204330000000f05000029000084c005500039000000000035004b000014760000a13d000000000023004b000000000203201900000000022500490000000302200210000000000424022f00000000042401cf000000ff0020008c000000000400201900000000020504330000000f06000029000084e006600039000000000036004b000014830000a13d000000000053004b000000000503201900000000055600490000000305500210000000000252022f00000000025201cf000000ff0050008c000000000200201900000d4c05000041000000200010008c000015200000213d000000200040008c000015200000213d000000200020008c000015200000213d00000000066100190000000075060434000000000037004b000014960000a13d000000000063004b000000000306a01900000000033700490000000303300210000000000535022f00000000053501cf000000ff0030008c0000000005002019000000000004004b0000152f0000613d0000000303400210000001000330008900000000043502310000000003000019000015300000613d00000d4d0040009c00000000030000390000008003002039000000000434022f00000d4c0040009c00000000050000390000004005002039000000000454022f00000d410040009c00000000060000390000002006002039000000000464022f0000ffff0040008c00000000070000390000001007002039000000000474022f000000ff0040008c00000000080000390000000808002039000000000484022f0000000f0040008c000900000009001d00000000090000390000000409002039000000000494022f000000030040008c000000000a000039000000020a0020390000000004a4022f000000010040008c00000001033021bf000000000353019f000000000363019f000000000373019f000000000383019f000000000393019f00000009090000290000000003a3019f0000001008000029000015300000013d0000001f01e00039000000050110027000000003011000c90000000f051000390000151f0000013d000000c001e0011a000084d0011000c90000afc8051000390000151f0000013d00000d410090009c00000d4109008041000000400190021000000d4100e0009c00000d410e0080410000006003e00210000000000113019f00000d4f002001980000000002000039000000010200603900000000000f004b0000000003000039000000010300603900080000002301a40000000502c000c9000001f40220c03900000d410020009c00000d4102008041000900000002001d000000c002200210000000000112019f0000000002000414000700000002001d00000000020f0019000f0000000d001d2c872c7d0000040f0000000f09000029000000600310027000000d41033001970000000b0030006c0000000b0400002900000000040340190000001f0540018f00000d4e064001980000000004690019000014f70000613d000000000701034f000000007807043c0000000009890436000000000049004b000014f30000c13d000000000005004b000000110d000029000015050000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000004000414000000070440006b00000000040040190004000000010355000004000030043f000000080100002900000001001001900000000901000029000001f40110c08a000000000400c019000000000341004b0000000001000019000000050130211a000000010a20018f00000010020000290000000e0220006a000000000e120019000000010dd000390000000201d00367000000000101043b000000f8011002700000000d0800002900000b230001013e00000096050000390000151f0000013d0000177005000039000000110b00002900000000015c004b0000153e0000813d0000000401000367000000600210027000000d410220019700040000002103e5000004000000043f000000000ec80049000000010db000390000000203d00367000000000303043b000000f803300270000000000a0000190000000d0800002900000b230003013e0000000003000019000000000012004b000000000201a0190000000701200039000000030110027000000000011100a9000000010030008c000000010300a03900000000013100a90000ffff0110018f000000030510011a000000c80050008c000000c80500a03900000000015c004b000015220000413d000900000001001d00000040019002100000006002e00210000000000112019f0000000002000414000000c002200210000000000121019f00000000020f0019000f0000000d001d2c872c7d0000040f0000000f09000029000000600310027000000d41033001970000000b0030006c0000000b0400002900000000040340190000001f0540018f00000d4e064001980000000004690019000015570000613d000000000701034f000000007807043c0000000009890436000000000049004b000015530000c13d000000000005004b000015640000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350004000000010355000004000030043f0000000100200190000000000a000019000000000c0000190000000e0b000029000015750000613d000000010a0000390000001002b00069000000090e2000290000001103000029000000010d3000390000000204d00367000000000404043b000000f8044002700000000d0800002900000b230004013e0000001001b00069000000000ec10019000000110d000029000000010dd000390000000201d00367000000000101043b000000f8011002700000000d0800002900000b230001013e00000000010e001900008480030000390000000002000019000000c8042000c9000000000141004b0000005b0000413d0000001f0420003900000d790540019700000020004001900000002005506039000000000423001900000000040404360000000000040435000000000435001900000000022404360000000000120435000000600150021000000d410030009c00000d41030080410000004002300210000000000121019f00000d760110009a00002c880001042e000000200180008a000004400010008c0000005b0000413d00000000020e00190000000001010433000000000001004b0000159f0000c13d00008480030000390000000404000029000015b70000013d00000d780410016700000000004a004b0000005b0000213d0000000004a1001900000d450040009c0000005b0000213d0000001f044000390000000504400270000084600600043d000000000564004b0000000007000019000015b30000a13d00000000066600a9000000090660027000000000074400a900000009077002700000000006670049000084600040043f00000003045000c90000000007460019000000000272004b0000005b0000413d0000848003a000390000159d0000013d000000000004004b000015bc0000613d000000200330008a0000000000230435000000200110003900000d410030009c00000d4103008041000000400230021000000d410010009c00000d41010080410000006001100210000000000121019f00002c890001043000000000010e001900008480030000390000000002000019000000010000006b000015ce0000613d00000d7b0020009c0000005b0000213d000000200330008a0000000000130435000000200220003900000d410030009c00000d4103008041000000400130021000000d410020009c00000d41020080410000006002200210000000000112019f00002c880001042e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000aa10019000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000aa100a9000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000a1a0049000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000002080433000000000002004b000000000100001900000000012ac0d9000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000002080433000000000002004b0000000001000019000016230000613d00000d7100a0009c000016170000c13d00000d710100004100000d780020009c000016230000613d00000d712120012c00000d710220c09900000d7143a0012c000000000313013f00000d710440c09900000000012400d9000000ff023002120000000003120049000000000223019f0000000002016019000000000001004b000000000102c019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000002080433000000000002004b000000000100001900000000102ac0d9000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000002080433000000000002004b0000000001000019000016500000613d00000d7100a0009c000016460000c13d00000d780020009c0000000001000019000016500000613d00000d711020012c00000d710110c09900000d7120a0012c00000d710220c09900000000101200d900000d7100a001980000000002010019000000000220c089000000000001004b000000000102c019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000080ee0008c0000005b0000413d000000400180008a000004400010008c0000005b0000413d0000000002010433000000000002004b0000000003000019000016670000613d00000000502a00d9000000200380008a000000000303043300000000602300d9000000000456001900000000302400d9000000000056001a0000166e0000413d000000010dd000390000000202d00367000000000202043b000000f802200270000000000a030019000000000801001900000c320002013e000000000a240049000000010dd000390000000202d00367000000000202043b000000f802200270000000000801001900000c320002013e000000080ee0008c0000005b0000413d000000400180008a000004400010008c0000005b0000413d0000000003010433000000000003004b000000010dd000390000000002000019000016df0000613d00000000203a00d9000000200480008a000000000404043300000000403400d900000d4d0030009c0000168c0000213d00000000022400a900000000a03200d90000000202d00367000000000202043b000000f802200270000000000801001900000c320002013e00000000452400a9000000010200008a000000000043004b000016df0000a13d00000d720030009c000000c0020000390000008002004039000000000623022f0000004002000039000000800200403900000d730060009c000000200220808a000000200660827000000d740060009c000000100220808a0000001006608270000001000060008c000000080220808a0000000806608270000000100060008c00000000070600190000000407708270000000040070008c000000000807001900000002088082700000000009800089000000020080008c000000020900808a000000100060008c000000040220808a000000040070008c000000020220808a0000000002290019000000ff0620018f00000000046401cf00000d7806200167000000ff0660018f0000000107500270000000000667022f000000000764019f00000000032301cf000000800430027000000000a94700d900000000062501cf000000800860027000000d4d05300197000016bf0000013d000000000a4a0019000000010990008a00000d4d00a0009c000016c60000813d00000d750090009c000016bb0000213d000000000b5900a9000000800ca00210000000000c8c019f0000000000cb004b000016bb0000213d00000d4d0990019700000000093900a90000008007700210000000000787019f000000000797004900000000984700d900000d4d06600197000016d20000013d0000000009490019000000010880008a00000d4d0090009c000016d90000813d00000d750080009c000016ce0000213d000000000a5800a9000000800b900210000000000b6b019f0000000000ba004b000016ce0000213d00000d4d0480019700000000033400a90000008004700210000000000464019f0000000003340049000000000223022f0000000203d00367000000000303043b000000f803300270000000000a020019000000000801001900000c320003013e0000000a02e0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d00000001030000390000000001080433000000000001004b000016fd0000613d0000000004010019000000000300001900000032033000390000000804400272000016f00000c13d000000000232004b0000005b0000413d000000010300003900000001001001900000000005aa00a9000000010a00603900000000033a00a90000000101100272000000000a050019000016f60000c13d000000000e020019000000000a030019000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000050ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d00000000010804330000001e00a0008c0000170e0000a13d000000000a010019000017180000013d0000000302a0021000000007022001bf00000d780320021f000000000421022f00000001004001900000000003006019000001000220008900000000012101cf000000000121022f000000000a13019f000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000000001a004b000000000a000039000000010a004039000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000000001a004b000000000a000039000000010a002039000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000000001a004b000000000200001900000d710200404100000d7103a0019700000d7101100197000000000413013f000000000013004b000000000100001900000d710100204100000d710040009c000000000102c019000000010dd00039000000000001004b000000000a000039000000010a00c0390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000000001a004b000000000200001900000d710200204100000d7103a0019700000d7101100197000000000413013f000000000013004b000000000100001900000d710100404100000d710040009c000000000102c019000000010dd00039000000000001004b000000000a000039000000010a00c0390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000000001a004b000000000a000039000000010a006039000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000004400080008c0000005b0000413d000000010dd0003900000000000a004b000000000a000039000000010a0060390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000aa1016f000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000aa1019f000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000aa1013f000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000004400080008c0000005b0000413d00000d780aa00167000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d00000000010804330000000302a0021000000000012101cf000000f8011002700000001f00a0008c0000000001002019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d00000000010804330000000001a101cf000000ff00a0008c0000000001002019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d00000000010804330000000001a1022f000000ff00a0008c0000000001002019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000030ee0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d000000000108043300000d7102100197000000010300008a00000d710020009c000000000300c019000000ff00a0008c000000ff0a0080390000010002a0008900000000022301cf0000000003a1022f000000000223019f00000000000a004b000000000102c019000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e0000001e02e0008c0000005b0000413d000000200880008a000004400080008c0000005b0000413d0000000001080433000000000001004b0000000004000019000018170000613d00000d780310016700000000003a004b0000005b0000213d0000000003a1001900000d450030009c0000005b0000213d0000001f033000390000000503300270000084600600043d000000000563004b0000000004000019000018170000a13d00000000046600a9000000090440027000000000063300a900000009066002700000000004460049000084600030043f00000003035000c900000000043400190000001f03100039000000050330027000000006033000c90000000003340019000000000232004b0000005b0000413d000f00000008001d001000000002001d00110000000d001d0000848002a0003900000d410020009c00000d41020080410000004002200210000000000001004b000000000200601900000d410010009c00000d41010080410000006001100210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f00000d4b011001c700008010020000392c872c7d0000040f0000000100200190000026e10000613d000000110d000029000000010dd00039000000000a01043b0000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000c320001013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000000a000410000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000e006400e000940000005b0000413d000004400080008c0000005b0000413d000f00000008001d00100000000e001d00110000000d001d00000d4601a00197000b00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d00000d4700100198000018610000613d0000000e01000029000018660000013d0000000e01000029000009c40010008c00000010010000290000005b0000413d00000a280110008a001000000001001d00000d590100004100000000001004430000000b010000290000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800a020000392c872c7d0000040f0000000100200190000026e00000613d000000110d000029000000010dd00039000000000a01043b0000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000c320001013e000000020ee0008c0000005b0000413d000003000100043d000000000001004b000018970000c13d000e0000000a001d000f00000008001d00100000000e001d00110000000d001d00000d70010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003000010043f000000110d000029000000100e0000290000000f080000290000000e0a0000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000201d00367000000000101043b000000f801100270000000000a00041100000c320001013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000000a000416000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d000004400080008c0000005b0000413d00000d7700a0009c0000000001000019000018bf0000213d0000001201a00367000000000101043b000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a00003100000c320002013e0000000304e0008c0000005b0000413d000000400580008a000004400050008c0000005b0000413d000000600180008a0000000002010433000000200380008a00000000030304330000000005050433000000000005004b0000000007000019000018f10000613d00000d780650016700000000006a004b0000005b0000213d0000000006a5001900000d450060009c0000005b0000213d0000001f066000390000000506600270000084600900043d000000000896004b0000000007000019000018f10000a13d00000000079900a9000000090770027000000000096600a900000009099002700000000007790049000084600060043f00000003068000c900000000076700190000001f06500039000000050660027000000003066000c90000000006670019000000000e64004b0000005b0000413d00000d5c0030009c00000d5c0300804100000000065300190000848004a0003900000d4e0060009c0000190f0000413d00000d5c063000990000000008460019000000000765004900000d79057001970000000005850019000000000085004b000019070000a13d0000000008080436000000000058004b000019040000413d0000001f07700190000019100000613d0000000307700210000000000805043300000000087801cf000000000778022f0000000000750435000019100000013d0000000006050019000000000006004b000019290000613d00000d79056001980000001f0660018f000000120730036700000000035400190000191c0000613d000000000807034f000000008908043c0000000004940436000000000034004b000019180000c13d000000000006004b000019290000613d000000000457034f0000000305600210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f0000000000430435000000010dd000390000000203d00367000000000303043b000000f803300270000000000a020019000000000801001900000c320003013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000201d00367000000000101043b000000f801100270000000070a00002900000c320001013e0000000304e0008c0000005b0000413d000000400580008a000004400050008c0000005b0000413d000000600180008a0000000002010433000000200380008a00000000030304330000000005050433000000000005004b00000000070000190000195c0000613d00000d780650016700000000006a004b0000005b0000213d0000000006a5001900000d450060009c0000005b0000213d0000001f066000390000000506600270000084600900043d000000000896004b00000000070000190000195c0000a13d00000000079900a9000000090770027000000000096600a900000009099002700000000007790049000084600060043f00000003068000c900000000076700190000001f06500039000000050660027000000003066000c90000000006670019000000000e64004b0000005b0000413d0000000707000029000000000073004b000000000307801900000000065300190000848004a00039000000000076004b0000197b0000a13d00000000063700490000000008460019000000000765004900000d79057001970000000005850019000000000085004b000019730000a13d0000000008080436000000000058004b000019700000413d0000001f077001900000197c0000613d0000000307700210000000000805043300000000087801cf000000000778022f00000000007504350000197c0000013d0000000006050019000000000006004b000019950000613d00000d79056001980000001f0660018f00000002073003670000000003540019000019880000613d000000000807034f000000008908043c0000000004940436000000000034004b000019840000c13d000000000006004b000019950000613d000000000457034f0000000305600210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f0000000000430435000000010dd000390000000203d00367000000000303043b000000f803300270000000000a020019000000000801001900000c320003013e000000020ee0008c0000005b0000413d000003200100043d000000000001004b000019b60000c13d000e0000000a001d000f00000008001d00100000000e001d00110000000d001d00000d6f010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003200010043f000000110d000029000000100e0000290000000f080000290000000e0a0000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000b006400e000940000005b0000413d000004400080008c0000005b0000413d000f00000008001d00100000000e001d00110000000d001d00000d4601a00197000e00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d00000d4700100198000019d80000613d0000000b01000029000019dd0000013d0000000b01000029000009c40010008c00000010010000290000005b0000413d00000a280110008a001000000001001d00000d4801000041000000000010043f0000000e01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f0000000100200190000026e10000613d000000000201043b0003000000010355000000f801200270000000010010008c000019fc0000613d000000020010008c00001a120000c13d000000e0012002700000ffff0a10018f000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000c320001013e00000d570100004100000000001004430000000e010000290000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c700008002020000392c872c7d0000040f0000000100200190000026e00000613d000000000a01043b000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000c320001013e000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000000a000019000000100e0000290000000f0800002900000c320001013e0000006406e0008c0000005b0000413d000000600180008a000004400010008c0000005b0000413d000000800280008a000a00000002001d0000000002020433000900000002001d000000400280008a0000000002020433000600000002001d000000200280008a0000000002020433000f00000002001d0000000005010433000000000005004b000000000400001900001a420000613d00000d78015001670000000f0010006b0000005b0000213d0000000f0150002900000d450010009c0000005b0000213d0000001f011000390000000501100270000084600300043d000000000231004b000000000400001900001a420000a13d00000000033300a9000000090330027000000000041100a900000009044002700000000003340049000084600010043f00000003012000c90000000004130019000b00000004001d001000000006001d000e00000005001d00110000000d001d00000d4601a00197000800000001001d000000000010043f0000000001000414000000c00110021000000d43011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d0000000e030000290000001f02300039000000050220027000000003022000c90000000b0220002900000d4700100198000009c402206039000000100e20006b000000110d0000290000005b0000413d000000000003004b00001acb0000613d00100000000e001d00000d4801000041000000000010043f0000000801000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f0000000100200190000026e10000613d0000000f02000029000f84800020003d000000000201043b0003000000010355000b00000002001d000000000020043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d6e011001c700008012020000392c872c7d0000040f000000010020019000000000040000190000000e0600002900001ab10000613d000000600210027000000d41032001970000000b0400002900000d5502400197000000e0044002700000ffff0440018f00000d5b0020009c0000000504406210000000000064004b0000000004068019000000060030006b00000000020300190000000602004029000000000542001900000000070200190000000002230049000000000035004b000000000204a019000000000002004b000000000400001900001ab10000613d0000000004720019000000000034004b000026e10000213d000000000371034f00000d79042001980000001f0520018f0000000f0140002900001aa20000613d000000000603034f0000000f07000029000000006806043c0000000007870436000000000017004b00001a9e0000c13d000000000005004b00001aaf0000613d000000000343034f0000000304500210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000000040200190000000e06000029000000000246004b000000110d000029000000100e00002900001acb0000a13d0000000f0340002900000d79012001970000000001310019000000000031004b00001abd0000a13d0000000003030436000000000013004b00001aba0000413d0000001f0220019000001acb0000613d0000000302200210000000000301043300000000032301cf000000000223022f0000000000210435000000010dd000390000000201d00367000000000101043b000000f801100270000000090a0000290000000a0800002900000c320001013e000000010dd000390000000201d00367000000000101043b000000f801100270000000090a0000290000000a0800002900000c320001013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000004000100043d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e0000000305e0008c0000005b0000413d000000400480008a000004400040008c0000005b0000413d000000600180008a0000000002010433000000200380008a00000000030304330000000004040433000000000004004b000000000700001900001aff0000613d00000d780640016700000000006a004b0000005b0000213d0000000006a4001900000d450060009c0000005b0000213d0000001f066000390000000506600270000084600900043d000000000896004b000000000700001900001aff0000a13d00000000079900a9000000090770027000000000096600a900000009099002700000000007790049000084600060043f00000003068000c900000000076700190000001f06400039000000050660027000000003066000c90000000006670019000000000e65004b0000005b0000413d00000d7805400167000000000053004b0000005b0000213d0000000005340019000004000600043d000000000065004b0000005b0000213d00000d79054001980000001f0440018f00000004063003670000848007a00039000000000357001900001b170000613d000000000806034f000000008908043c0000000007970436000000000037004b00001b130000c13d000000000004004b00001b240000613d000000000556034f0000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f0000000000430435000000010dd000390000000203d00367000000000303043b000000f803300270000000000a020019000000000801001900000c320003013e000b006400e000940000005b0000413d000004400080008c0000005b0000413d000f00000008001d00100000000e001d00110000000d001d00000d4601a00197000e00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d00000d470010019800001b440000613d0000000b0100002900001b490000013d0000000b01000029000009c40010008c00000010010000290000005b0000413d00000a280110008a001000000001001d00000d4801000041000000000010043f0000000e01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f0000000100200190000026e10000613d000000000a01043b000300000001035500000d4a01a0019700000d4b0010009c00001b720000c13d00000d6d01000041000000000010043f0000000400a0043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008015020000392c872c7d0000040f0000000100200190000026e10000613d000000000a01043b0003000000010355000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000c320001013e0000000e01000029000001000010008c00001b770000413d00000d4f00a0019800001b9b0000c13d00000d5a01000041000000000010043f0000000e01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008003020000392c872c7d0000040f0000000100200190000026e10000613d000000000201043b0003000000010355000000000002004b00001b8a0000613d00000d6c0a00004100001b9b0000013d00000d590100004100000000001004430000000e010000290000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800a020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000000000001004b00000d6c0a00004100001ba30000613d000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000c320001013e000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000000a000019000000100e0000290000000f0800002900000c320001013e000000140ee0008c0000005b0000413d000004400080008c0000005b0000413d000f00000008001d00100000000e001d00110000000d001d00000d6b0100004100000000001004430000000400a00443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000110d000029000000010dd00039000000000a01043b0000000201d00367000000000101043b000000f801100270000000100e0000290000000f0800002900000c320001013e000000020ee0008c0000005b0000413d000003400100043d000000000001004b00001be20000c13d000e0000000a001d000f00000008001d00100000000e001d00110000000d001d00000d6a010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003400010043f000000110d000029000000100e0000290000000f080000290000000e0a0000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000020ee0008c0000005b0000413d000003600100043d000000000001004b00001c050000c13d000e0000000a001d000f00000008001d00100000000e001d00110000000d001d00000d69010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003600010043f000000110d000029000000100e0000290000000f080000290000000e0a0000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000020ee0008c0000005b0000413d000003800100043d000000000001004b00001c280000c13d000e0000000a001d000f00000008001d00100000000e001d00110000000d001d00000d68010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003800010043f000000110d000029000000100e0000290000000f080000290000000e0a0000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a8043600000d670a000041000000010dd000390000000201d00367000000000101043b000000f80110027000000c320001013e000000020ee0008c0000005b0000413d000003a00100043d000000000001004b00001c560000c13d000e0000000a001d000f00000008001d00100000000e001d00110000000d001d00000d66010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003a00010043f000000110d000029000000100e0000290000000f080000290000000e0a0000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000020ee0008c0000005b0000413d000003c00100043d000000000001004b00001c790000c13d000e0000000a001d000f00000008001d00100000000e001d00110000000d001d00000d65010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003c00010043f000000110d000029000000100e0000290000000f080000290000000e0a0000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000050ee0008c0000005b0000413d000e0000000a001d000f00000008001d00100000000e001d00110000000d001d00000d5901000041000000000010044300000000010004100000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800a020000392c872c7d0000040f0000000100200190000026e00000613d0000000f080000290000841f0080008c000000110d000029000000100e0000290000000e020000290000005b0000213d000000000a01043b0000000008280436000000010dd000390000000202d00367000000000202043b000000f80220027000000c320002013e000000020ee0008c0000005b0000413d000003e00100043d000000000001004b00001cbc0000c13d000e0000000a001d000f00000008001d00100000000e001d00110000000d001d00000d63010000410000000000100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d64011001c70000800b020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000003e00010043f000000110d000029000000100e0000290000000f080000290000000e0a0000290000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000020ee0008c0000005b0000413d000004400080008c0000005b0000413d000000010dd00039000000200880008a000000000a0804330000000201d00367000000000101043b000000f80110027000000c320001013e0000000301e0008c0000005b0000413d000004400080008c0000005b0000413d00000d6200a0009c0000005b0000213d0000003f02a000390000000502200270000084600500043d000000000352004b000000000400001900001ce60000a13d00000000045500a9000000090440027000000000052200a900000009055002700000000004450049000084600020043f00000003023000c90000000004240019000000000041004b0000005b0000413d000000000e410049000000010dd000390000848001a00039000000000a0104330000000201d00367000000000101043b000000f80110027000000c320001013e0000000301e0008c0000005b0000413d000000200280008a000004400020008c0000005b0000413d00000d6200a0009c0000005b0000213d0000000003020433000000400880008a00000000020804330000003f04a000390000000504400270000084600700043d000000000674004b000000000500001900001d080000a13d00000000057700a9000000090550027000000000074400a900000009077002700000000005570049000084600040043f00000003046000c90000000005450019000000000051004b0000005b0000413d0000848004a000390000000000340435000000000e510049000000010dd000390000000201d00367000000000101043b000000f801100270000000000a02001900000c320001013e0000000301e0008c0000005b0000413d000000200280008a000004400020008c0000005b0000413d00000d6000a0009c0000005b0000213d0000000003020433000000400880008a00000000020804330000002004a000390000000505400270000084600700043d000000000675004b000000000400001900001d2b0000a13d00000000047700a9000000090440027000000000075500a900000009077002700000000004470049000084600050043f00000003056000c90000000004540019000000000041004b0000005b0000413d000000f8033002100000848005a00039000000000605043300000d6106600197000000000336019f0000000000350435000000000e410049000000010dd000390000000201d00367000000000101043b000000f801100270000000000a02001900000c320001013e000b006400e000940000005b0000413d000004400080008c0000005b0000413d000f00000008001d00100000000e001d00110000000d001d00000d5b01000041000000000010043f0000000100a0043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d5f011001c70000801302000039000e0000000a001d2c872c7d0000040f0000000e0a0000290000000100200190000026e10000613d00000d470010019800001d580000613d000000000a0a041a000000110d000029000000010dd000390000000201d00367000000000101043b000000f8011002700000000b0e0000290000000f0800002900000c320001013e0000000b01000029000007d00010008c0000005b0000413d00000000020a041a00000d4b01000041000000000010043f0000000100a0043f000e00000002001d000000210020043f0000000001000414000000c00110021000000d5e011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d000000100e000029000008340ee0008a00000d4700100198000300000001c355000000110d000029000000010dd000390000000201d00367000000000101043b000000f8011002700000000e0a0000290000000f0800002900000c320001013e000008fd00e0008c0000000d0100002900000001011041bf00000001001001900000005b0000c13d000000200180008a000004400010008c0000005b0000413d00100000000e001d00110000000d001d0000000001010433000b00000001001d000000400880008a000f00000008001d0000000001080433000900000001001d00000000020a041a00000d4b01000041000000000010043f0000000100a0043f000a00000002001d000000210020043f0000000001000414000000c00110021000000d5e011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000e0000000a001d2c872c780000040f0000000e060000290000000100200190000026e10000613d000000110d000029000000010dd0003900000898020000390000565404000039000013880300003900000d47001001980000000a07000029000000000507001900001da90000613d000000000501043b0003000000010355000000640200003900004e200400003900000b54030000390000000b01000029000000000071004b000000100e0000290000000f0800002900001db40000c13d000000000e2e00490000000201d00367000000000101043b000000f801100270000000090a00002900000c320001013e000000000075004b00001dba0000c13d000000000007004b000000000204001900001dba0000613d0000000002030019000000000e2e004b0000005b0000413d000000000016041b0000000201d00367000000000101043b000000f801100270000000090a00002900000c320001013e000000090ee0008c0000005b0000413d000004400080008c0000005b0000413d00000d5c00a0009c0000005b0000213d000000200880008a00000000010804330000000202a00367000000000202043b00000d550220019700000d5d0020009c0000005b0000c13d000000010da000390000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e0000000a02e0008c0000005b0000413d000000200380008a000004400030008c0000005b0000413d000000400880008a00000000010804330000000003030433000000000003004b00001def0000613d00000d5c00a0009c0000005b0000213d0000000203a00367000000000303043b00000d550330019700000d5d0030009c0000005b0000c13d000000000002004b0000005b0000613d000000010da000390000000b0ee0008a0000000202d00367000000000202043b000000f802200270000000000a01001900000c320002013e000000010dd000390000000203d00367000000000303043b000000f803300270000000000e020019000000000a01001900000c320003013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a804360000000101d000390000000202100367000000000202043b000000f802200270000000000a0d0019000000000d01001900000c320002013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000084600100043d0000000008a80436000000010dd00039000000050a1002100000000201d00367000000000101043b000000f80110027000000c320001013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000201d00367000000000101043b000000f801100270000000000a0e001900000c320001013e00000000000e004b0000005b0000613d000000010dd00039000000010ee0008a0000000201d00367000000000101043b000000f80110027000000c320001013e000000640ee0008c0000005b0000413d000004400080008c0000005b0000413d000000010dd00039000000000a0a04460000000201d00367000000000101043b000000f80110027000000c320001013e000000640ee0008c0000005b0000413d0000000c0000006b0000005b0000c13d000000200180008a000004400010008c0000005b0000413d0000000001010433000000400880008a000000000208043300000000001a0447000000010dd000390000000201d00367000000000101043b000000f801100270000000000a02001900000c320001013e0000000303e0008c0000005b0000413d000000400580008a000004400050008c0000005b0000413d000000600180008a0000000002010433000000200480008a00000000040404330000000005050433000000000005004b0000000006000019000000000700001900001e510000613d00000d7806500167000000000064004b0000005b0000213d00000000006a004b0000005b0000213d0000000007a500190000000006450019000000000076004b000000000607a019000000000006004b000000000700001900001e660000613d00000d450060009c0000005b0000213d0000001f066000390000000506600270000084600900043d000000000896004b000000000700001900001e660000a13d00000000079900a9000000090770027000000000096600a900000009099002700000000007790049000084600060043f00000003068000c900000000076700190000001f06500039000000050660027000000003066000c90000000006670019000000000e63004b0000005b0000413d00000d79075001970000001f0650018f0000848005a000390000848003400039000000000053004b00001e810000813d000000000007004b00001e7e0000613d00000000086300190000000004650019000000200440008a000000200880008a0000000009740019000000000a780019000000000a0a04330000000000a90435000000200770008c00001e780000c13d000000000006004b00001e8d0000c13d00001e970000013d0000000004750019000000000007004b00001e890000613d000000000803001900000000890804340000000005950436000000000045004b00001e850000c13d000000000006004b00001e970000613d000000000373001900000000050400190000000304600210000000000605043300000000064601cf000000000646022f00000000030304330000010004400089000000000343022f00000000034301cf000000000363019f0000000000350435000000010dd000390000000203d00367000000000303043b000000f803300270000000000a020019000000000801001900000c320003013e000000020ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000008a80436000000010dd000390000000201d00367000000000101043b000000f801100270000000000a00001900000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000020dd00039000000f80a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000030dd00039000000f00a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000040dd00039000000e80a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000050dd00039000000e00a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000060dd00039000000d80a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000070dd00039000000d00a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000080dd00039000000c80a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000090dd00039000000c00a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000a0dd00039000000b80a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000b0dd00039000000b00a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000c0dd00039000000a80a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000d0dd00039000000a00a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000e0dd00039000000980a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000000f0dd00039000000900a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000100dd00039000000880a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000110dd00039000000800a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000120dd00039000000780a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000130dd00039000000700a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000140dd00039000000680a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000150dd00039000000600a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000160dd00039000000580a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000170dd00039000000500a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000180dd00039000000480a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000190dd00039000000400a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001a0dd00039000000380a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001b0dd00039000000300a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001c0dd00039000000280a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001d0dd00039000000200a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001e0dd00039000000180a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a804360000001f0dd00039000000100a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000200dd00039000000080a1002700000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d0000000101d000390000000201100367000000000101043b0000000008a80436000000210dd000390000000204d00367000000000404043b000000f804400270000000000a01001900000c320004013e000000030ee0008c0000005b0000413d000084200180008a00000d7a0010009c0000005b0000413d0000000008a80436000000010dd000390000000203d00367000000000303043b000000f80330027000000c320003013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000000200180008a000004400010008c0000005b0000413d0000000008a80436000000010dd00039000000000a0104330000000201d00367000000000101043b000000f80110027000000c320001013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000000400180008a000004400010008c0000005b0000413d0000000008a80436000000010dd00039000000000a0104330000000204d00367000000000404043b000000f80440027000000c320004013e000000030ee0008c0000005b0000413d0000841f0080008c0000005b0000213d000000600180008a000004400010008c0000005b0000413d0000000008a80436000000010dd00039000000000a0104330000000204d00367000000000404043b000000f80440027000000c320004013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000000800280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000000a00280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000000c00280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000000e00280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001000280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001200280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001400280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001600280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001800280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001a00280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001c00280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d0000841f0080008c0000005b0000213d000001e00280008a000004400020008c0000005b0000413d0000000008a80436000000010dd00039000000000a0204330000000205d00367000000000505043b000000f805500270000000000e01001900000c320005013e0000000301e0008c0000005b0000413d000000200280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000000400280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000000600280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000000800280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000000a00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000000c00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000000e00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000001000280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000001200280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000001400280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000001600280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000001800280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000001a00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000001c00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000001e00280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000000301e0008c0000005b0000413d000002000280008a000004400020008c0000005b0000413d00000000030204330000000000a20435000000010dd000390000000204d00367000000000404043b000000f804400270000000000e010019000000000a03001900000c320004013e0000017706e0008c0000005b0000413d0000000c0000006b0000005b0000c13d000000200180008a000004400010008c0000005b0000413d000000400780008a00000000080704330000000001010433000000000001004b00000000030000190000000002000019000022590000613d00000d780210016700000000002a004b0000005b0000213d0000000002a1001900000d450020009c0000005b0000213d0000001f022000390000000502200270000084600500043d000000000352004b0000000004000019000022540000a13d00000000045500a9000000090440027000000000052200a900000009055002700000000004450049000084600020043f00000003023000c9000000000424001900000003021002100000000003240019000000000036004b0000005b0000413d0000848002a00039000b00000003001d000e00000008001d000f00000007001d001000000006001d00110000000d001d00000d410010009c00000d4101008041000000600110021000000d410020009c00000d41020080410000004002200210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000121019f00000d4b011001c70000800d0200003900000000030000192c872c780000040f0000000100200190000026e10000613d0000000b02000029000000100e2000690000001102000029000000010d2000390000000203d00367000000000303043b000000f8033002700000000e0a0000290000000f0800002900000c320003013e0000017707e0008c0000005b0000413d000000400180008a000004400010008c0000000d0200002900000001022041bf00000001002001900000005b0000c13d0000000004010433000000200180008a0000000001010433000000000001004b000022a20000613d00000d780210016700000000002a004b0000005b0000213d0000000002a1001900000d450020009c0000005b0000213d0000001f022000390000000502200270000084600600043d000000000362004b00000000050000190000229b0000a13d00000000056600a9000000090550027000000000062200a900000009066002700000000005560049000084600020043f00000003023000c9000000000525001900000003021002100000000002520019001001770020003d000000100070006c0000005b0000413d0000848002a00039000022a60000013d001001770000003d000001770070008c00000000020000190000005b0000413d000f00000007001d00110000000d001d00000d410010009c00000d4101008041000000600110021000000d410020009c00000d41020080410000004002200210000000000112019f000000600280008a000e00000002001d0000000002020433000b00000002001d000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f00000d4b011001c70000800d0200003900000001030000392c872c780000040f0000000100200190000026e10000613d00000010020000290000000f0e2000690000001102000029000000010d2000390000000203d00367000000000303043b000000f8033002700000000b0a0000290000000e0800002900000c320003013e0000017709e0008c0000005b0000413d000000600180008a000004400010008c0000000d0200002900000001022041bf00000001002001900000005b0000c13d000000400280008a0000000004020433000000200280008a0000000002020433000000000002004b000022f10000613d00000d780320016700000000003a004b0000005b0000213d0000000003a2001900000d450030009c0000005b0000213d0000001f033000390000000503300270000084600700043d000000000573004b0000000006000019000022ea0000a13d00000000067700a9000000090660027000000000073300a900000009077002700000000006670049000084600030043f00000003035000c9000000000636001900000003032002100000000003630019001002ee0030003d000000100090006c0000005b0000413d0000848003a00039000022f50000013d001002ee0000003d000002ee0090008c00000000030000190000005b0000413d000f00000009001d00110000000d001d00000d410020009c00000d4102008041000000600220021000000d410030009c00000d41030080410000004003300210000000000223019f0000000005010433000000800180008a000e00000001001d0000000001010433000b00000001001d000000000100041400000d410010009c00000d4101008041000000c001100210000000000121019f00000d4b011001c70000800d0200003900000002030000392c872c780000040f0000000100200190000026e10000613d00000010020000290000000f0e2000690000001102000029000000010d2000390000000203d00367000000000303043b000000f8033002700000000b0a0000290000000e0800002900000c320003013e0000017709e0008c0000005b0000413d000000800180008a000004400010008c0000000d0200002900000001022041bf00000001002001900000005b0000c13d000000400280008a0000000004020433000000200280008a0000000002020433000000000002004b000023410000613d00000d780320016700000000003a004b0000005b0000213d0000000003a2001900000d450030009c0000005b0000213d0000001f033000390000000503300270000084600700043d000000000573004b00000000060000190000233a0000a13d00000000067700a9000000090660027000000000073300a900000009077002700000000006670049000084600030043f00000003035000c9000000000636001900000003032002100000000003630019001004650030003d000000100090006c0000005b0000413d0000848003a00039000023450000013d001004650000003d000004650090008c00000000030000190000005b0000413d000f00000009001d00110000000d001d00000d410020009c00000d4102008041000000600220021000000d410030009c00000d41030080410000004003300210000000000223019f0000000006010433000000600180008a0000000005010433000000a00180008a000e00000001001d0000000001010433000b00000001001d000000000100041400000d410010009c00000d4101008041000000c001100210000000000121019f00000d4b011001c70000800d0200003900000003030000392c872c780000040f0000000100200190000026e10000613d00000010020000290000000f0e2000690000001102000029000000010d2000390000000203d00367000000000303043b000000f8033002700000000b0a0000290000000e0800002900000c320003013e0000017709e0008c0000005b0000413d000000a00180008a000004400010008c0000000d0200002900000001022041bf00000001002001900000005b0000c13d000000400280008a0000000004020433000000200280008a0000000002020433000000000002004b000023930000613d00000d780320016700000000003a004b0000005b0000213d0000000003a2001900000d450030009c0000005b0000213d0000001f033000390000000503300270000084600700043d000000000573004b00000000060000190000238c0000a13d00000000067700a9000000090660027000000000073300a900000009077002700000000006670049000084600030043f00000003035000c9000000000636001900000003032002100000000003630019001005dc0030003d000000100090006c0000005b0000413d0000848003a00039000023970000013d001005dc0000003d000005dc0090008c00000000030000190000005b0000413d000f00000009001d00110000000d001d00000d410020009c00000d4102008041000000600220021000000d410030009c00000d41030080410000004003300210000000000223019f0000000007010433000000800180008a0000000006010433000000600180008a0000000005010433000000c00180008a000e00000001001d0000000001010433000b00000001001d000000000100041400000d410010009c00000d4101008041000000c001100210000000000121019f00000d4b011001c70000800d0200003900000004030000392c872c780000040f0000000100200190000026e10000613d00000010020000290000000f0e2000690000001102000029000000010d2000390000000203d00367000000000303043b000000f8033002700000000b0a0000290000000e0800002900000c320003013e00007d0004e0008c0000005b0000413d0000000c0000006b0000005b0000c13d000000400180008a000004400010008c0000005b0000413d0000000002010433001000000001001d000000200180008a000000000101043300000000030a00190000000005000019000000000600001900110000000d001d2c872b480000040f0000001103000029000000010d300039000000000a0200190000000204d00367000000000404043b000000f804400270000000000e010019000000100800002900000c320004013e000000c00180008a000800000001001d000004400010008c0000005b0000413d000000a00180008a0000000006010433000000800180008a0000000004010433000000600180008a0000000001010433000a00000001001d000000400180008a0000000001010433000b00000001001d000000200180008a000000000101043300000008020000290000000003020433000000000003004b0000000002000019000900000004001d000023f30000613d00000d7802300167000000000026004b0000005b0000213d000000000403001900000000026400190000000904000029000400000003001d000000000004004b0000000003000019000023fc0000613d00000d78034001670000000a0030006b0000005b0000213d0000000a040000290000000903400029000000000032004b000000000203a019000000000002004b0000000005000019000024110000613d00000d450020009c0000005b0000213d0000001f022000390000000502200270000084600400043d000000000342004b0000000005000019000024110000a13d00000000044400a9000000090440027000000000052200a900000009055002700000000004450049000084600020043f00000003023000c90000000005240019000600000005001d000500000006001d00100000000e001d00110000000d001d00000d4601100197000f00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000e0000000a001d2c872c780000040f00000001002001900000000b02000029000026e10000613d00000d4700100198000000640100003900000a28010060390000000601100029000000000002004b000024680000613d000600000001001d0000000c0000006b0000000f020000290000005b0000c13d00000d570100004100000000001004430000000400200443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c700008002020000392c872c7d0000040f0000000100200190000026e00000613d00000006020000290000232804200039000000000101043b000000000001004b000024690000c13d000200000004001d00000d590100004100000000001004430000000f010000290000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800a020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b000000000001004b0000000204000029000024690000c13d00000d5a01000041000000000010043f0000000f01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008003020000392c872c7d0000040f0000000100200190000026e10000613d000000000201043b0003000000010355000000000002004b00000010010000290000000f0200002900000002040000290000000604006029000084d0044060390000246b0000013d000000000401001900000010010000290000000f0200002900100000004100530000005b0000413d00000d4801000041000000000010043f000000040020043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f0000001005000029000000060350027000000000033500490000000e0030006c0000000e03008029000008fc043000390000000b0d00002900000000000d004b000000000c040019000000000c0360190000000100200190000026e10000613d00000000083500490000000a0200002900008480092000390000000502000029000084800e200039000000000201043b000300000001035500000d4a0120019700000d4b0010009c000024ad0000c13d000600000009001d000e0000000e001d001000000008001d00000000000d004b000024bf0000613d000a00000004001d00050000000c001d00000d5901000041000000000010044300000000010004100000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800a020000392c872c7d0000040f0000000100200190000026e00000613d000000000101043b0000000b0010006c000000050c0000290000000a0b000029000024bf0000813d0000000401000367000000600210027000000d410220019700040000002103e5000004000000043f000000000a000019000026d80000013d0000000f0f0000290000000401f0008a000000040010008c00000d3c0001a13e00000bb8050000390000000100f0008c000000110b000029000025e20000613d0000000200f0008c0000259b0000c13d00000009010000290000001f0110003900000005011002700000000c011000c90000003c0510003900000000035c004b000025e40000413d000026500000013d0000000301000029000000000010043f0000002000c0043f0000000001000414000000c00110021000000d51011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000b030000290000000100200190000026e10000613d000000060100002900000d410010009c00000d41010080410000004001100210000000090200002900000d410020009c00000d41020080410000006002200210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f000000000003004b000024e30000613d00000d4b011001c700008009020000390000000f040000290000000005000019000024e40000013d0000000f020000292c872c780000040f000000020300036700040000000303550002000000010355000000600410027000000d4105400197000000200450008c000026e10000413d000000000b01043b000000040040006c0000000007040019000024f40000413d00000004070000290000002006700039000000000056004b000026e10000213d00000d79067001980000001f0770018f00000020011003700000000e0a00002900000000056a0019000024ff0000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000024fb0000c13d000000000007004b0000250c0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000004000040043f00040000000103550002000000030355000000010a0000390000000100200190000026d80000c13d00000d5201000041000000000010043f0000000001000414000000c00110021000000d53011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000a0000000b001d2c872c780000040f0000000a0b0000290000000100200190000000000a000019000026d80000c13d000026e10000013d000000090390002900000000010904330000000a02000029000084a002200039000000000032004b000000110b000029000025330000a13d000000000093004b0000000004090019000000000403201900000000044200490000000304400210000000000141022f00000000014101cf000000ff0040008c000000000100201900000000040204330000000a05000029000084c005500039000000000035004b000025400000a13d000000000023004b000000000203201900000000022500490000000302200210000000000424022f00000000042401cf000000ff0020008c000000000400201900000000020504330000000a06000029000084e006600039000000000036004b0000254d0000a13d000000000053004b000000000503201900000000055600490000000305500210000000000252022f00000000025201cf000000ff0050008c000000000200201900000d4c05000041000000200010008c000025e20000213d000000200040008c000025e20000213d000000200020008c000025e20000213d00000000066100190000000075060434000000000037004b000025600000a13d000000000063004b000000000306a01900000000033700490000000303300210000000000535022f00000000053501cf000000ff0030008c0000000005002019000000000004004b000026410000613d0000000303400210000001000330008900000000043502310000000003000019000026420000613d00000d4d0040009c00000000030000390000008003002039000000000434022f00000d4c0040009c00000000050000390000004005002039000000000454022f00000d410040009c00000000060000390000002006002039000000000464022f0000ffff0040008c00000000070000390000001007002039000000000474022f000000ff0040008c001000000008001d00000000080000390000000808002039000000000484022f0000000f0040008c000600000009001d00000000090000390000000409002039000000000494022f000000030040008c000000000a000039000000020a0020390000000004a4022f000000010040008c00000001033021bf000000000353019f000000000363019f000000000373019f000000000383019f0000001008000029000000000393019f00000006090000290000000003a3019f000026420000013d00000009010000290000001f01100039000000050110027000000003011000c90000000f05100039000025e10000013d0000000901000029000000c00110011a000084d0011000c90000afc805100039000025e10000013d00000000000f004b0000000003000039000000010300603900000d4f0020019800000001033061bf00000000000d004b00000000010000390000000101006039000600000003001d00000000003101700000000503c000c9000001f40330c03900000d410090009c00000d41090080410000004001900210000000090200002900000d410020009c00000d41020080410000006002200210000000000112019f00000d410030009c00000d4103008041000000c002300210000000000112019f00000000040004140000000c0000006b001000000008001d000e0000000e001d000900000003001d000a00000004001d000025f10000613d00000000020f00192c872c7d0000040f0000000e09000029000000600310027000000d4103300197000000040030006c000000040400002900000000040340190000001f0540018f00000d4e064001980000000004690019000025cb0000613d000000000701034f000000007807043c0000000009890436000000000049004b000025c70000c13d000000000005004b000025d80000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000110d0000290000001008000029000000090500002900000006060000290000000a090000290000262c0000013d0000009605000039000025e10000013d0000177005000039000000110b00002900000000035c004b000026500000813d0000000401000367000000600210027000000d410220019700040000002103e5000004000000043f000000000e080019000000010db000390000000203d00367000000000303043b000000f803300270000000000a000019000000080800002900000c320003013e00000000000d004b000026090000613d00000d4b011001c7000080090200003900000000030d001900000000040f001900000000050000192c872c780000040f000000600310027000000d4103300197000000040030006c000000040400002900000000040340190000001f0540018f00000d4e064001980000000e0900002900000000046900190000261a0000613d000000000701034f000000007807043c0000000009890436000000000049004b000026040000c13d0000261a0000013d00000000020f00192c872c780000040f000000600310027000000d4103300197000000040030006c000000040400002900000000040340190000001f0540018f00000d4e064001980000000e0900002900000000046900190000261a0000613d000000000701034f000000007807043c0000000009890436000000000049004b000026160000c13d000000000005004b000000110d00002900000010080000290000000a090000290000262a0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000090500002900000006060000290000000004000414000000000449004b00000000040040190004000000010355000004000030043f0000000100600190000026360000613d0000000b0000006b000001f40550608a0000000004000019000000000345004b0000000001000019000000050130211a000000010a20018f000000000e180019000000010dd000390000000201d00367000000000101043b000000f801100270000000080800002900000c320001013e0000000003000019000000000012004b000000000201a0190000000701200039000000030110027000000000011100a9000000010030008c000000010300a03900000000013100a90000ffff0110018f000000030510011a000000c80050008c000000c80500a03900000000035c004b000025e40000413d000000400190021000000009020000290000006002200210000000000112019f0000000002000414000000c002200210000000000121019f0000000c0000006b001000000008001d000e0000000e001d000a00000003001d0000266e0000613d00000000020f00192c872c7d0000040f0000000e09000029000000600310027000000d4103300197000000040030006c000000040400002900000000040340190000001f0540018f00000d4e064001980000000004690019000026b50000613d000000000701034f000000007807043c0000000009890436000000000049004b000026690000c13d000026b50000013d00000000000d004b000026a40000613d00000d5b011001c7000080090200003900000000030d001900000000040f0019000000000500001900000000060000192c872c780000040f000000600310027000000d4103300197000000040000006b000000010220018f000026d20000613d000000000002004b000026d20000613d000000040030006c000000040200002900000000020340190000001f0420018f00000d4e052001980000000e09000029000000000259001900000010080000290000268c0000613d000000000601034f000000006706043c0000000009790436000000000029004b000026880000c13d000000000004004b000000110d0000290000269a0000613d000000000551034f0000000304400210000000000602043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004204350004000000010355000004000030043f000000010a0000390000000a0e800029000000010dd000390000000201d00367000000000101043b000000f801100270000000080800002900000c320001013e00000000020f00192c872c780000040f000000600310027000000d4103300197000000040030006c000000040400002900000000040340190000001f0540018f00000d4e064001980000000e090000290000000004690019000026b50000613d000000000701034f000000007807043c0000000009890436000000000049004b000026b10000c13d000000000005004b000026c20000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350004000000010355000004000030043f0000000100200190000000000a000019000000000b000019000026d80000613d000000010a0000390000000a02000029000000100e200029000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000080800002900000c320001013e0004000000010355000004000030043f000000000002004b000000000a000019000000000b000019000026c80000c13d000000100eb00029000000110d000029000000010dd000390000000201d00367000000000101043b000000f801100270000000080800002900000c320001013e000000000001042f000000000100001900002c8900010430000000200280008a000004400020008c0000005b0000413d00000000010e00190000000002020433000000000002004b000015c50000613d00000d780420016700000000004a004b0000005b0000213d0000000004a2001900000d450040009c0000005b0000213d0000001f044000390000000504400270000084600600043d000000000564004b0000000007000019000026fe0000a13d00000000066600a9000000090660027000000000074400a900000009077002700000000006670049000084600040043f00000003045000c90000000007460019000000000171004b0000005b0000413d0000848003a00039000000010000006b000015c90000c13d000015ce0000013d000000a00180008a000a00000001001d000004400010008c0000005b0000413d000000800180008a0000000007010433000000600180008a0000000006010433000000400180008a0000000001010433000f00000001001d000000200180008a00000000010104330000000a020000290000000003020433000000000003004b00000000020000190000271b0000613d00000d7802300167000000000027004b0000005b0000213d00000000040300190000000002740019000600000003001d000000000006004b0000000003000019000027230000613d00000d78036001670000000f0030006b0000005b0000213d0000000f03600029000000000032004b000000000203a019000000000002004b0000000005000019000027380000613d00000d450020009c0000005b0000213d0000001f022000390000000502200270000084600400043d000000000342004b0000000005000019000027380000a13d00000000044400a9000000090440027000000000052200a900000009055002700000000004450049000084600020043f00000003023000c90000000005240019000900000005001d000800000007001d000500000006001d00100000000e001d00110000000d001d00000d4601100197000b00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000e0000000a001d2c872c780000040f0000000100200190000026e10000613d00000d4700100198000000640100003900000a2801006039000000090110002900100010001000730000005b0000413d00000d4801000041000000000010043f0000000b01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f00000010040000290000000603400270000000000c3400490000000e00c0006c0000000e0c0080290000000100200190000026e10000613d0000000f02000029000084800f2000390000000802000029000084800d200039000000000201043b000300000001035500000d4a0120019700000d4b0010009c000027ce0000c13d000e0000000d001d0000000301000029000000000010043f0000002000c0043f0000000001000414000000c00110021000000d51011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000f0000000c001d00090000000f001d2c872c780000040f00000009010000290000000100200190000026e10000613d00000d410010009c00000d41010080410000004001100210000000050200002900000d410020009c00000d41020080410000006002200210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f0000000b020000292c872c820000040f0000000f0c000029000000020300036700040000000303550002000000010355000000600410027000000d4105400197000000200450008c000026e10000413d000000000b01043b000000060040006c00000000070400190000279e0000413d00000006070000290000002006700039000000000056004b000026e10000213d00000d79067001980000001f0770018f00000020011003700000000e0a00002900000000056a0019000027a90000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000027a50000c13d000000000007004b000027b60000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000004000040043f00040000000103550002000000030355000000010a0000390000000100200190000028f70000c13d00000d5201000041000000000010043f0000000001000414000000c00110021000000d53011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000e0000000b001d2c872c780000040f0000000e0b0000290000000f0c0000290000000100200190000000000a000019000028f70000c13d000026e10000013d0000000b0e0000290000000401e0008a000000040010008c000000100800a02900000d370001a13e00000bb8050000390000000100e0008c000000110b0000290000001008000029000028a00000613d0000000200e0008c000028570000c13d00000005010000290000001f0110003900000005011002700000000c011000c90000003c0510003900000000015c004b000028a20000413d000028be0000013d0000000503f0002900000000010f04330000000f02000029000084a002200039000000000032004b000000110b000029000027f20000a13d0000000000f3004b00000000040f0019000000000403201900000000044200490000000304400210000000000141022f00000000014101cf000000ff0040008c000000000100201900000000040204330000000f05000029000084c005500039000000000035004b000027ff0000a13d000000000023004b000000000203201900000000022500490000000302200210000000000424022f00000000042401cf000000ff0020008c000000000400201900000000020504330000000f06000029000084e006600039000000000036004b0000280c0000a13d000000000053004b000000000503201900000000055600490000000305500210000000000252022f00000000025201cf000000ff0050008c000000000200201900000d4c05000041000000200010008c000028a00000213d000000200040008c000028a00000213d000000200020008c000028a00000213d00000000066100190000000075060434000000000037004b0000281f0000a13d000000000063004b000000000306a01900000000033700490000000303300210000000000535022f00000000053501cf000000ff0030008c0000000005002019000000000004004b000028af0000613d0000000303400210000001000330008900000000043502310000000003000019000028b00000613d00000d4d0040009c00000000030000390000008003002039000000000434022f00000d4c0040009c00000000050000390000004005002039000000000454022f00000d410040009c00000000060000390000002006002039000000000464022f0000ffff0040008c00000000070000390000001007002039000000000474022f000000ff0040008c00000000080000390000000808002039000000000484022f0000000f0040008c00000000090000390000000409002039000000000494022f000000030040008c000000000a000039000000020a0020390000000004a4022f000000010040008c00000001033021bf000000000353019f000000000363019f000000000373019f000000000383019f000000000393019f0000000003a3019f0000001008000029000028b00000013d00000005010000290000001f01100039000000050110027000000003011000c90000000f051000390000289f0000013d0000000501000029000000c00110011a000084d0011000c90000afc8051000390000289f0000013d000e0000000d001d0000000401000367000000600310027000000d410330019700040000003103e5000004000000043f00000000000e004b000028630000613d00000d4f00200198000000000a000019000000000b0c0019000028f70000c13d000f0000000c001d00000d4100f0009c00000d410f0080410000004001f00210000000050200002900000d410020009c00000d41020080410000006002200210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f0000000b020000292c872c820000040f000000010a20018f000000600210027000000d4102200197000000060020006c000000060300002900000000030240190000001f0430018f00000d4e053001980000000e080000290000000003580019000028830000613d000000000601034f000000006706043c0000000008780436000000000038004b0000287f0000c13d000000000004004b000000110d0000290000000f07000029000028920000613d000000000551034f0000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350004000000010355000004000020043f0000001001700069000000000e710019000000010dd000390000000201d00367000000000101043b000000f8011002700000000a0800002900000c320001013e00000096050000390000289f0000013d0000177005000039000000110b00002900000000015c004b000028be0000813d0000000401000367000000600210027000000d410220019700040000002103e5000004000000043f000000000ec80049000000010db000390000000203d00367000000000303043b000000f803300270000000000a0000190000000a0800002900000c320003013e0000000003000019000000000012004b000000000201a0190000000701200039000000030110027000000000011100a9000000010030008c000000010300a03900000000013100a90000ffff0110018f000000030510011a000000c80050008c000000c80500a03900000000015c004b000028a20000413d000900000001001d000f0000000c001d0000004001f0021000000005020000290000006002200210000000000112019f0000000002000414000000c002200210000000000121019f00000000020e0019000e0000000d001d2c872c7d0000040f0000000e09000029000000600310027000000d4103300197000000060030006c000000060400002900000000040340190000001f0540018f00000d4e064001980000000004690019000028d90000613d000000000701034f000000007807043c0000000009890436000000000049004b000028d50000c13d000000000005004b000028e60000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350004000000010355000004000030043f0000000100200190000000000a000019000000000b0000190000000f0c000029000028f70000613d000000010a0000390000001002c00069000000090e2000290000001103000029000000010d3000390000000204d00367000000000404043b000000f8044002700000000a0800002900000c320004013e0000001001c00069000000000eb10019000000110d000029000000010dd000390000000201d00367000000000101043b000000f8011002700000000a0800002900000c320001013e00007d0004e0008c0000005b0000413d0000000c0000006b0000005b0000c13d000000600180008a000004400010008c0000005b0000413d0000000006010433001000000001001d000000400180008a0000000002010433000000200180008a0000000001010433000000010500003900000000030a001900110000000d001d2c872b480000040f0000001103000029000000010d300039000000000a0200190000000204d00367000000000404043b000000f804400270000000000e010019000000100800002900000c320004013e000000a00180008a000b00000001001d000004400010008c0000005b0000413d000000800180008a0000000007010433000000600180008a0000000006010433000000400180008a0000000001010433000f00000001001d000000200180008a00000000010104330000000b020000290000000003020433000000000003004b0000000002000019000029310000613d00000d7802300167000000000027004b0000005b0000213d00000000040300190000000002740019000900000003001d000000000006004b0000000003000019000029390000613d00000d78036001670000000f0030006b0000005b0000213d0000000f03600029000000000032004b000000000203a019000000000002004b00000000050000190000294e0000613d00000d450020009c0000005b0000213d0000001f022000390000000502200270000084600400043d000000000342004b00000000050000190000294e0000a13d00000000044400a9000000090440027000000000052200a900000009055002700000000004450049000084600020043f00000003023000c90000000005240019000800000005001d000600000007001d000500000006001d00100000000e001d00110000000d001d00000d4601100197000a00000001001d000000000010043f0000000001000414000000c00110021000000d43011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000e0000000a001d2c872c780000040f0000000100200190000026e10000613d00000d4700100198000000640100003900000a2801006039000000080110002900100010001000730000005b0000413d00000d4801000041000000000010043f0000000a01000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f00000010040000290000000603400270000000000c3400490000000e00c0006c0000000e0c0080290000000100200190000026e10000613d0000000f0200002900008480092000390000000602000029000084800d200039000000000201043b000300000001035500000d4a0120019700000d4b0010009c000e0000000c001d000029e40000c13d000800000009001d000f0000000d001d00000d5001000041000000000010043f0000002000c0043f0000000001000414000000c00110021000000d51011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000026e10000613d000000080100002900000d410010009c00000d41010080410000004001100210000000050200002900000d410020009c00000d41020080410000006002200210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000112019f0000000a020000292c872c780000040f0000000e0b000029000000020300036700040000000303550002000000010355000000600410027000000d4105400197000000200450008c000026e10000413d000000000c01043b000000090040006c0000000007040019000029b40000413d00000009070000290000002006700039000000000056004b000026e10000213d00000d79067001980000001f0770018f00000020011003700000000f0a00002900000000056a0019000029bf0000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000029bb0000c13d000000000007004b000029cc0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000004000040043f00040000000103550002000000030355000000010a000039000000010020019000002b150000c13d00000d5201000041000000000010043f0000000001000414000000c00110021000000d53011001c700008013020000390000000003000019000000000400001900000000050000190000000006000019000f0000000c001d2c872c780000040f0000000f0c0000290000000e0b0000290000000100200190000000000a00001900002b150000c13d000026e10000013d0000000a0f0000290000000401f0008a000000040010008c000000100800a029000000050e00a02900000d320001a13e00000bb8050000390000000100f0008c000000110b0000290000001008000029000000050e00002900002ac00000613d0000000200f0008c00002a6e0000c13d0000001f01e0003900000005011002700000000c011000c90000003c0510003900000000015c004b00002ac20000413d00002ade0000013d00000000039e001900000000010904330000000f02000029000084a002200039000000000032004b000000110b00002900002a090000a13d000000000093004b0000000004090019000000000403201900000000044200490000000304400210000000000141022f00000000014101cf000000ff0040008c000000000100201900000000040204330000000f05000029000084c005500039000000000035004b00002a160000a13d000000000023004b000000000203201900000000022500490000000302200210000000000424022f00000000042401cf000000ff0020008c000000000400201900000000020504330000000f06000029000084e006600039000000000036004b00002a230000a13d000000000053004b000000000503201900000000055600490000000305500210000000000252022f00000000025201cf000000ff0050008c000000000200201900000d4c05000041000000200010008c00002ac00000213d000000200040008c00002ac00000213d000000200020008c00002ac00000213d00000000066100190000000075060434000000000037004b00002a360000a13d000000000063004b000000000306a01900000000033700490000000303300210000000000535022f00000000053501cf000000ff0030008c0000000005002019000000000004004b00002acf0000613d000000030340021000000100033000890000000004350231000000000300001900002ad00000613d00000d4d0040009c00000000030000390000008003002039000000000434022f00000d4c0040009c00000000050000390000004005002039000000000454022f00000d410040009c00000000060000390000002006002039000000000464022f0000ffff0040008c00000000070000390000001007002039000000000474022f000000ff0040008c00000000080000390000000808002039000000000484022f0000000f0040008c000800000009001d00000000090000390000000409002039000000000494022f000000030040008c000000000a000039000000020a0020390000000004a4022f000000010040008c00000001033021bf000000000353019f000000000363019f000000000373019f000000000383019f000000000393019f00000008090000290000000003a3019f000000100800002900002ad00000013d0000001f01e00039000000050110027000000003011000c90000000f0510003900002abf0000013d000000c001e0011a000084d0011000c90000afc80510003900002abf0000013d00000d410090009c00000d4109008041000000400190021000000d4100e0009c00000d410e0080410000006003e00210000000000113019f00000d4f002001980000000002000039000000010200603900000000000f004b0000000003000039000000010300603900060000002301a40000000502c000c9000001f40220c03900000d410020009c00000d4102008041000800000002001d000000c002200210000000000112019f0000000002000414000500000002001d00000000020f0019000f0000000d001d2c872c7d0000040f0000000f09000029000000600310027000000d4103300197000000090030006c000000090400002900000000040340190000001f0540018f00000d4e06400198000000000469001900002a970000613d000000000701034f000000007807043c0000000009890436000000000049004b00002a930000c13d000000000005004b000000110d00002900002aa50000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000004000414000000050440006b00000000040040190004000000010355000004000030043f000000060100002900000001001001900000000801000029000001f40110c08a000000000400c019000000000341004b0000000001000019000000050130211a000000010a20018f00000010020000290000000e0220006a000000000e120019000000010dd000390000000201d00367000000000101043b000000f8011002700000000b0800002900000c320001013e000000960500003900002abf0000013d0000177005000039000000110b00002900000000015c004b00002ade0000813d0000000401000367000000600210027000000d410220019700040000002103e5000004000000043f000000000ec80049000000010db000390000000203d00367000000000303043b000000f803300270000000000a0000190000000b0800002900000c320003013e0000000003000019000000000012004b000000000201a0190000000701200039000000030110027000000000011100a9000000010030008c000000010300a03900000000013100a90000ffff0110018f000000030510011a000000c80050008c000000c80500a03900000000015c004b00002ac20000413d000800000001001d00000040019002100000006002e00210000000000112019f0000000002000414000000c002200210000000000121019f00000000020f0019000f0000000d001d2c872c7d0000040f0000000f09000029000000600310027000000d4103300197000000090030006c000000090400002900000000040340190000001f0540018f00000d4e06400198000000000469001900002af70000613d000000000701034f000000007807043c0000000009890436000000000049004b00002af30000c13d000000000005004b00002b040000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350004000000010355000004000030043f0000000100200190000000000a000019000000000c0000190000000e0b00002900002b150000613d000000010a0000390000001002b00069000000080e2000290000001103000029000000010d3000390000000204d00367000000000404043b000000f8044002700000000b0800002900000c320004013e0000001001b00069000000000ec10019000000110d000029000000010dd000390000000201d00367000000000101043b000000f8011002700000000b0800002900000c320001013e2c872b420000040f000000200180008a000004400010008c0000005b0000413d00000000020e00190000000001010433000000000001004b00002b290000c13d00008480030000390000000104000029000015b70000013d00000d780410016700000000004a004b0000005b0000213d0000000004a1001900000d450040009c0000005b0000213d0000001f044000390000000504400270000084600600043d000000000564004b000000000700001900002b3d0000a13d00000000066600a9000000090660027000000000074400a900000009077002700000000006670049000084600040043f00000003045000c90000000007460019000000000272004b0000005b0000413d0000848003a000390000000104000029000015b70000013d000000000000043f000002e00100043d00000d410010009c00000d4101008041000000600110021000002c89000104300008000000000002000600000006001d0000c0010020008c00002c6e0000813d00000000070200190000000008010019000000000002004b00002b650000613d00000d7801700167000000000081004b00002c6e0000413d000000000187001900000d450010009c00002c6e0000213d0000001f011000390000000502100270000084600900043d000000000692004b000000000100001900002b660000a13d00000000019900a9000000090110027000000000092200a900000009099002700000000001190049000084600020043f00000003026000c9000000000121001900002b660000013d00000000010000190000001f02700039000000050220027000000006062000c9000000000005004b0000000006006019000000010220021000000000012100190000000001610019000000000114004b00002c6e0000413d0000000404000367000000600240027000000d410220019700040000002403e5000004000000043f000000000003004b000800000001001d000500000003001d000700000007001d000400000008001d00002b920000613d000300000005001d00000d5901000041000000000010044300000000010004100000000400100443000000000100041400000d410010009c00000d4101008041000000c00110021000000d58011001c70000800a020000392c872c7d0000040f000000010020019000002c760000613d000000000101043b000000050010006c000000080100002900000007070000290000000408000029000000030500002900002b920000813d0000000002000019000000000001042d00000006021002700000000002210049000000000012004b0000000002018019000300000002001d000000000005004b00000d6c040000410000000004006019000284800080003d000000000007004b00002bb10000613d000000000005004b00002bb10000613d00000007010000290000006001100210000000020200002900000d410020009c00000d41020080410000004002200210000000000112019f000000000200041400000d410020009c00000d4102008041000000c002200210000000000121019f00000d4b011001c700008010020000392c872c7d0000040f000000010020019000002c740000613d000000000401043b00000d7c02000041000000000020043f0000000601000029000000040010043f000000240040043f0000000001000414000000c00110021000000d7d011001c7000080060200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f000000010020019000002bf30000613d000000000201043b000300000001035500000d4601200197000600000001001d000000000010043f0000000001000414000000c00110021000000d43011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f000000010020019000002c740000613d00000d4801000041000000000010043f0000000601000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008002020000392c872c7d0000040f000000010020019000002c740000613d000000000201043b0003000000010355000000000002004b00002bf30000c13d00000d5a01000041000000000010043f0000000601000029000000040010043f000000000100041400000d410010009c00000d4101008041000000c00110021000000d49011001c700008003020000392c872c7d0000040f000000010020019000002c740000613d000000000201043b0003000000010355000000000002004b00002bf70000613d000000000200001900000003030000290000000801300069000000000001042d00000d5401000041000000000010043f0000000301000029000000200010043f0000000001000414000000c00110021000000d51011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f0000000100200190000000060400002900002c740000613d000000040200002900008400052000390000000001050433000001400010043f00008420062000390000000001060433000001600010043f00008440072000390000000001070433000001800010043f00008460082000390000000001080433000001a00010043f0000000201000029000000400110021000000d7e0110009a0000000703000029000000600230021000000d7f0220009a000000000112019f000100000008001d00000000003804350000004002000039000200000007001d0000000000270435000400000006001d000000000046043500000d8002000041000700000005001d00000000002504350000000002000414000000c002200210000000000121019f00000d5b011001c70000000503000029000000000003004b00002c300000613d00008009020000390000800604000039000000010500003900002c340000013d000080060200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f000001400300043d00000007040000290000000000340435000001600300043d00000004040000290000000000340435000001800300043d00000002040000290000000000340435000001a00300043d0000000104000029000000000034043500000002030003670002000000010355000000600410027000000d41044001970004000000030355000000010020019000002c520000613d000000400040008c00002c740000413d0000002002100370000000000202043b000000000501043b00040000004103e50002000000030355000004000000043f00002c680000013d000000200240008c00002c740000413d000000000401043b000700000004001d000004000020043f0004002000100376000200000003035500000d5201000041000000000010043f0000000001000414000000c00110021000000d53011001c7000080130200003900000000030000190000000004000019000000000500001900000000060000192c872c780000040f00000007050000290000000100200190000000000200001900002c740000613d00000003035000690000000801000029000000000013004b00002c6e0000213d0000000001310049000000000001042d000000000000043f000002e00100043d00000d410010009c00000d4101008041000000600110021000002c8900010430000000000100001900002c8900010430000000000001042f000000000001042f00002c7b002104210000000102000039000000000001042d0000000002000019000000000001042d00002c80002104230000000102000039000000000001042d0000000002000019000000000001042d00002c85002104250000000102000039000000000001042d0000000002000019000000000001042d00002c870000043200002c880001042e00002c890001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000157e000000000000000000000000000000000000000000000000000000000000009e00000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000b600000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000d100000000000000000000000000000000000000000000000000000000000000f100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000124000000000000000000000000000000000000000000000000000000000000013c00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001cb0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e00000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001f20000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021900000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000002640000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000029a00000000000000000000000000000000000000000000000000000000000002a90000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e00000000000000000000000000000000000000000000000000000000000002c10000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000000304000000000000000000000000000000000000000000000000000000000000030f000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003670000000000000000000000000000000000000000000000000000000000000372000000000000000000000000000000000000000000000000000000000000037d0000000000000000000000000000000000000000000000000000000000000387000000000000000000000000000000000000000000000000000000000000039200000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003f40000000000000000000000000000000000000000000000000000000000000455000000000000000000000000000000000000000000000000000000000000047f00000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000061c0000000000000000000000000000000000000000000000000000000000000663000000000000000000000000000000000000000000000000000000000000067f00000000000000000000000000000000000000000000000000000000000006a200000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006e800000000000000000000000000000000000000000000000000000000000006f30000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000073900000000000000000000000000000000000000000000000000000000000007590000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e000000000000000000000000000000000000000000000000000000000000077c000000000000000000000000000000000000000000000000000000000000078700000000000000000000000000000000000000000000000000000000000007a500000000000000000000000000000000000000000000000000000000000007c800000000000000000000000000000000000000000000000000000000000007ef000000000000000000000000000000000000000000000000000000000000083d0000000000000000000000000000000000000000000000000000000000000876000000000000000000000000000000000000000000000000000000000000088900000000000000000000000000000000000000000000000000000000000008aa00000000000000000000000000000000000000000000000000000000000008b600000000000000000000000000000000000000000000000000000000000008c200000000000000000000000000000000000000000000000000000000000008cd00000000000000000000000000000000000000000000000000000000000008d500000000000000000000000000000000000000000000000000000000000008df00000000000000000000000000000000000000000000000000000000000008ee00000000000000000000000000000000000000000000000000000000000003870000000000000000000000000000000000000000000000000000000000000950000000000000000000000000000000000000000000000000000000000000095e000000000000000000000000000000000000000000000000000000000000096c000000000000000000000000000000000000000000000000000000000000097a0000000000000000000000000000000000000000000000000000000000000988000000000000000000000000000000000000000000000000000000000000099600000000000000000000000000000000000000000000000000000000000009a400000000000000000000000000000000000000000000000000000000000009b200000000000000000000000000000000000000000000000000000000000009c000000000000000000000000000000000000000000000000000000000000009ce00000000000000000000000000000000000000000000000000000000000009dc00000000000000000000000000000000000000000000000000000000000009ea00000000000000000000000000000000000000000000000000000000000009f80000000000000000000000000000000000000000000000000000000000000a060000000000000000000000000000000000000000000000000000000000000a140000000000000000000000000000000000000000000000000000000000000a220000000000000000000000000000000000000000000000000000000000000a300000000000000000000000000000000000000000000000000000000000000a3e0000000000000000000000000000000000000000000000000000000000000a4c0000000000000000000000000000000000000000000000000000000000000a5a0000000000000000000000000000000000000000000000000000000000000a680000000000000000000000000000000000000000000000000000000000000a760000000000000000000000000000000000000000000000000000000000000a840000000000000000000000000000000000000000000000000000000000000a920000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000aae0000000000000000000000000000000000000000000000000000000000000abc0000000000000000000000000000000000000000000000000000000000000aca0000000000000000000000000000000000000000000000000000000000000ad80000000000000000000000000000000000000000000000000000000000000ae60000000000000000000000000000000000000000000000000000000000000af40000000000000000000000000000000000000000000000000000000000000b020000000000000000000000000000000000000000000000000000000000000b100000000000000000000000000000000000000000000000000000000000000b1b0000000000000000000000000000000000000000000000000000000000000b290000000000000000000000000000000000000000000000000000000000000b370000000000000000000000000000000000000000000000000000000000000b450000000000000000000000000000000000000000000000000000000000000b530000000000000000000000000000000000000000000000000000000000000b610000000000000000000000000000000000000000000000000000000000000b6f0000000000000000000000000000000000000000000000000000000000000b7e0000000000000000000000000000000000000000000000000000000000000b8d0000000000000000000000000000000000000000000000000000000000000b9c0000000000000000000000000000000000000000000000000000000000000bab0000000000000000000000000000000000000000000000000000000000000bba0000000000000000000000000000000000000000000000000000000000000bc90000000000000000000000000000000000000000000000000000000000000bd80000000000000000000000000000000000000000000000000000000000000be70000000000000000000000000000000000000000000000000000000000000bf60000000000000000000000000000000000000000000000000000000000000c040000000000000000000000000000000000000000000000000000000000000c120000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000c2e0000000000000000000000000000000000000000000000000000000000000c3c0000000000000000000000000000000000000000000000000000000000000c4a0000000000000000000000000000000000000000000000000000000000000c580000000000000000000000000000000000000000000000000000000000000c660000000000000000000000000000000000000000000000000000000000000c740000000000000000000000000000000000000000000000000000000000000c820000000000000000000000000000000000000000000000000000000000000c900000000000000000000000000000000000000000000000000000000000000c9e0000000000000000000000000000000000000000000000000000000000000cac0000000000000000000000000000000000000000000000000000000000000cba0000000000000000000000000000000000000000000000000000000000000cc80000000000000000000000000000000000000000000000000000000000000cd60000000000000000000000000000000000000000000000000000000000000d1c0000000000000000000000000000000000000000000000000000000000000d670000000000000000000000000000000000000000000000000000000000000db40000000000000000000000000000000000000000000000000000000000000e030000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000000e540000000000000000000000000000000000000000000000000000000000000e6b0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000001140000000000000000000000000000000000000000000000000000000000000116500000000000000000000000000000000000000000000000000000000000013610000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e00000000000000000000000000000000000000000000000000000000000013790000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e00000000000000000000000000000000000000000000000000000000000015950000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e00000000000000000000000000000000000000000000000000000000000014c50000000000000000000000000000000000000000000000000000000000001459000000000000000000000000000000000000000000000000000000000000151c000000000000000000000000000000000000000000000000000000000000151e00000000000000000000000000000000000000000000000000000000000014ca00000000000000000000000000000000000000000000000000000000000012ad000000000000000000000000000000000000000000000000000000000000124300000000000000000000000000000000000000000000000000000000000012fd00000000000000000000000000000000000000000000000000000000000012ff00000000000000000000000000000000000000000000000000000000000012b300000000000000000000000000000000000000000000000000000000000010280000000000000000000000000000000000000000000000000000000000000fbb00000000000000000000000000000000000000000000000000000000000010640000000000000000000000000000000000000000000000000000000000001066000000000000000000000000000000000000000000000000000000000000102d00000000000000000000000000000000000000000000000000000000000015c400000000000000000000000000000000000000000000000000000000000015d600000000000000000000000000000000000000000000000000000000000015e200000000000000000000000000000000000000000000000000000000000015ee00000000000000000000000000000000000000000000000000000000000015fa0000000000000000000000000000000000000000000000000000000000001609000000000000000000000000000000000000000000000000000000000000162900000000000000000000000000000000000000000000000000000000000016380000000000000000000000000000000000000000000000000000000000001656000000000000000000000000000000000000000000000000000000000000167500000000000000000000000000000000000000000000000000000000000016e500000000000000000000000000000000000000000000000000000000000017040000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e000000000000000000000000000000000000000000000000000000000000171d000000000000000000000000000000000000000000000000000000000000172b00000000000000000000000000000000000000000000000000000000000017390000000000000000000000000000000000000000000000000000000000001752000000000000000000000000000000000000000000000000000000000000176b000000000000000000000000000000000000000000000000000000000000177900000000000000000000000000000000000000000000000000000000000017850000000000000000000000000000000000000000000000000000000000001791000000000000000000000000000000000000000000000000000000000000179d00000000000000000000000000000000000000000000000000000000000017a900000000000000000000000000000000000000000000000000000000000017b300000000000000000000000000000000000000000000000000000000000017c400000000000000000000000000000000000000000000000000000000000017d300000000000000000000000000000000000000000000000000000000000017e20000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e00000000000000000000000000000000000000000000000000000000000017fa0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e000000000000000000000000000000000000000000000000000000000000183d0000000000000000000000000000000000000000000000000000000000001848000000000000000000000000000000000000000000000000000000000000187d00000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018ab00000000000000000000000000000000000000000000000000000000000018b600000000000000000000000000000000000000000000000000000000000018c500000000000000000000000000000000000000000000000000000000000018d00000000000000000000000000000000000000000000000000000000000001930000000000000000000000000000000000000000000000000000000000000193b000000000000000000000000000000000000000000000000000000000000199c00000000000000000000000000000000000000000000000000000000000019bf0000000000000000000000000000000000000000000000000000000000001a1b0000000000000000000000000000000000000000000000000000000000001ad20000000000000000000000000000000000000000000000000000000000001ade0000000000000000000000000000000000000000000000000000000000001b2b0000000000000000000000000000000000000000000000000000000000001bac0000000000000000000000000000000000000000000000000000000000001bc80000000000000000000000000000000000000000000000000000000000001beb0000000000000000000000000000000000000000000000000000000000001c0e0000000000000000000000000000000000000000000000000000000000001c310000000000000000000000000000000000000000000000000000000000001c3c0000000000000000000000000000000000000000000000000000000000001c5f0000000000000000000000000000000000000000000000000000000000001c820000000000000000000000000000000000000000000000000000000000001ca20000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000001cc50000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001cee0000000000000000000000000000000000000000000000000000000000001d110000000000000000000000000000000000000000000000000000000000001d380000000000000000000000000000000000000000000000000000000000001d780000000000000000000000000000000000000000000000000000000000001dc20000000000000000000000000000000000000000000000000000000000001dd50000000000000000000000000000000000000000000000000000000000001df60000000000000000000000000000000000000000000000000000000000001e020000000000000000000000000000000000000000000000000000000000001e0e0000000000000000000000000000000000000000000000000000000000001e190000000000000000000000000000000000000000000000000000000000001e210000000000000000000000000000000000000000000000000000000000001e2b0000000000000000000000000000000000000000000000000000000000001e3c0000000000000000000000000000000000000000000000000000000000001e9e0000000000000000000000000000000000000000000000000000000000001ea90000000000000000000000000000000000000000000000000000000000001eb70000000000000000000000000000000000000000000000000000000000001ec50000000000000000000000000000000000000000000000000000000000001ed30000000000000000000000000000000000000000000000000000000000001ee10000000000000000000000000000000000000000000000000000000000001eef0000000000000000000000000000000000000000000000000000000000001efd0000000000000000000000000000000000000000000000000000000000001f0b0000000000000000000000000000000000000000000000000000000000001f190000000000000000000000000000000000000000000000000000000000001f270000000000000000000000000000000000000000000000000000000000001f350000000000000000000000000000000000000000000000000000000000001f430000000000000000000000000000000000000000000000000000000000001f510000000000000000000000000000000000000000000000000000000000001f5f0000000000000000000000000000000000000000000000000000000000001f6d0000000000000000000000000000000000000000000000000000000000001f7b0000000000000000000000000000000000000000000000000000000000001f890000000000000000000000000000000000000000000000000000000000001f970000000000000000000000000000000000000000000000000000000000001fa50000000000000000000000000000000000000000000000000000000000001fb30000000000000000000000000000000000000000000000000000000000001fc10000000000000000000000000000000000000000000000000000000000001fcf0000000000000000000000000000000000000000000000000000000000001fdd0000000000000000000000000000000000000000000000000000000000001feb0000000000000000000000000000000000000000000000000000000000001ff90000000000000000000000000000000000000000000000000000000000002007000000000000000000000000000000000000000000000000000000000000201500000000000000000000000000000000000000000000000000000000000020230000000000000000000000000000000000000000000000000000000000002031000000000000000000000000000000000000000000000000000000000000203f000000000000000000000000000000000000000000000000000000000000204d000000000000000000000000000000000000000000000000000000000000205b0000000000000000000000000000000000000000000000000000000000002069000000000000000000000000000000000000000000000000000000000000207400000000000000000000000000000000000000000000000000000000000020820000000000000000000000000000000000000000000000000000000000002090000000000000000000000000000000000000000000000000000000000000209e00000000000000000000000000000000000000000000000000000000000020ad00000000000000000000000000000000000000000000000000000000000020bc00000000000000000000000000000000000000000000000000000000000020cb00000000000000000000000000000000000000000000000000000000000020da00000000000000000000000000000000000000000000000000000000000020e900000000000000000000000000000000000000000000000000000000000020f80000000000000000000000000000000000000000000000000000000000002107000000000000000000000000000000000000000000000000000000000000211600000000000000000000000000000000000000000000000000000000000021250000000000000000000000000000000000000000000000000000000000002134000000000000000000000000000000000000000000000000000000000000214300000000000000000000000000000000000000000000000000000000000021520000000000000000000000000000000000000000000000000000000000002160000000000000000000000000000000000000000000000000000000000000216e000000000000000000000000000000000000000000000000000000000000217c000000000000000000000000000000000000000000000000000000000000218a000000000000000000000000000000000000000000000000000000000000219800000000000000000000000000000000000000000000000000000000000021a600000000000000000000000000000000000000000000000000000000000021b400000000000000000000000000000000000000000000000000000000000021c200000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021de00000000000000000000000000000000000000000000000000000000000021ec00000000000000000000000000000000000000000000000000000000000021fa0000000000000000000000000000000000000000000000000000000000002208000000000000000000000000000000000000000000000000000000000000221600000000000000000000000000000000000000000000000000000000000022240000000000000000000000000000000000000000000000000000000000002232000000000000000000000000000000000000000000000000000000000000227a00000000000000000000000000000000000000000000000000000000000022c80000000000000000000000000000000000000000000000000000000000002318000000000000000000000000000000000000000000000000000000000000236a0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e00000000000000000000000000000000000000000000000000000000000023be00000000000000000000000000000000000000000000000000000000000023d70000000000000000000000000000000000000000000000000000000000002b1e00000000000000000000000000000000000000000000000000000000000026e3000000000000000000000000000000000000000000000000000000000000270400000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e000000000000000000000000000000000000000000000000000000000000291a0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1f0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002a6500000000000000000000000000000000000000000000000000000000000029f90000000000000000000000000000000000000000000000000000000000002abc0000000000000000000000000000000000000000000000000000000000002abe0000000000000000000000000000000000000000000000000000000000002a6a000000000000000000000000000000000000000000000000000000000000284c00000000000000000000000000000000000000000000000000000000000027e2000000000000000000000000000000000000000000000000000000000000289c000000000000000000000000000000000000000000000000000000000000289e00000000000000000000000000000000000000000000000000000000000028520000000000000000000000000000000000000000000000000000000000002590000000000000000000000000000000000000000000000000000000000000252300000000000000000000000000000000000000000000000000000000000025de00000000000000000000000000000000000000000000000000000000000025e0000000000000000000000000000000000000000000000000000000000000259600000000000000000000000000000000000000000000000000000000ffffffff0400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffff0000000000000000000000004de2e468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000ff010000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000ffffffe00000ffff0000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000040000000000000000000000000050000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000300000000000000000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000000000000000ef000000000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f395aa9b6b500000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffdf5b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000004100000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000000000000000000000000bfffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000bfffe06ef25c3ab4fb9cba75ff1971e3f261040c39b067df172dd5185087fc5553a5b602000002000000000000000000000000000000040000000000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b7877a797fe6dca4321f33fd95414da079ab78e698d761514c01ced9211af267e0000000000000000000000000000000000000000000000000008e1bc9bf0400042cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd1796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d95539132a6ae0aac158b2d5c9a9c9285743419d62a32f6727a640955e4ce8ee41503c78480b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da3c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4705f8f27b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000fe173b97ed9aa263236c52fa3eb334d07741add95e972d17352d76816b4aaea3938b5f3299a1f3b18e458564efbb950733226014eece26fae19012d850b48d83800000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffc000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffdeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8020ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdff81dae860000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000640000000000000000ffffffffffffffffffffffffffffffffffffff9c00000000000000000000000000000000000000000000000000000000000000000000000000000000e43cec640000000000000000000000000000000000000000000000000000000000000000e3c556dbd0758e5b63ab73a08f194e8f3eb20e7ea9a02165e8f38f84f7e7b0c0", "blockHash": "0x613b6dd730b3f4ec0dbd59b5b4990429a37fc4b85c14a49fe4d83c82a243b1c3", diff --git a/l1-contracts/upgrade-envs/v0.28.0-precompiles/output/mainnet/verification-logs b/l1-contracts/upgrade-envs/v0.28.0-precompiles/output/mainnet/verification-logs index 1429ecfa0b..da0bd24648 100644 --- a/l1-contracts/upgrade-envs/v0.28.0-precompiles/output/mainnet/verification-logs +++ b/l1-contracts/upgrade-envs/v0.28.0-precompiles/output/mainnet/verification-logs @@ -65,11 +65,11 @@ Script ran successfully. forge verify-contract 0x6655933e34d8FD8f6d2CC7d5175bFC06112B7474 ChainTypeManager --constructor-args 0x0000000000000000000000000000000000000000000000000000000000010002 --verifier zksync Ecosystem contracts for GW are deployed! Publishing the following bytecode: - 0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35 + 0x0100099f5ca0a8b6327c30672e3e94fc56203860f4159d615463ab99cf0eeece Publishing the following bytecode: - 0x010005f72e443c94460f4583fb38ef5d0c5cd9897021c41df840f91465c0392e + 0x010005f76ff9047aa9a0caabf27b4d40c44bafa64cbcda4bb85104a46fc6210c Publishing the following bytecode: - 0x01000d83e0329d9144ad041430fafcbc2b388e5434db8cb8a96e80157738a1da + 0x01000d8bae37b82f311186426184866498b357f41d7a02ced11f3e3fbfbacd63 Publishing the following bytecode: 0x0100000741c40b7a529bf86f3e5887e1def0cd99ca7797e67404a956571dbdd0 Publishing the following bytecode: diff --git a/l1-contracts/upgrade-envs/v0.28.0-precompiles/stage.toml b/l1-contracts/upgrade-envs/v0.28.0-precompiles/stage.toml index 7ba98860da..e758f89dac 100644 --- a/l1-contracts/upgrade-envs/v0.28.0-precompiles/stage.toml +++ b/l1-contracts/upgrade-envs/v0.28.0-precompiles/stage.toml @@ -31,9 +31,9 @@ diamond_init_max_pubdata_per_batch = 120000 diamond_init_max_l2_gas_per_batch = 80000000 diamond_init_priority_tx_max_pubdata = 99000 diamond_init_minimal_l2_gas_price = 250000000 -bootloader_hash = "0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35" -default_aa_hash = "0x010005f72e443c94460f4583fb38ef5d0c5cd9897021c41df840f91465c0392e" -evm_emulator_hash = "0x01000d83e0329d9144ad041430fafcbc2b388e5434db8cb8a96e80157738a1da" +bootloader_hash = "0x0100099f5ca0a8b6327c30672e3e94fc56203860f4159d615463ab99cf0eeece" +default_aa_hash = "0x010005f76ff9047aa9a0caabf27b4d40c44bafa64cbcda4bb85104a46fc6210c" +evm_emulator_hash = "0x01000d8bae37b82f311186426184866498b357f41d7a02ced11f3e3fbfbacd63" bridgehub_proxy_address = "0x236D1c3Ff32Bd0Ca26b72Af287E895627c0478cE" rollup_da_manager = "0xeb7c0daaddfb52afa05400b489e7497b271d6122" diff --git a/l1-contracts/upgrade-envs/v0.28.0-precompiles/testnet.toml b/l1-contracts/upgrade-envs/v0.28.0-precompiles/testnet.toml index 2322e7e657..225bfd80ee 100644 --- a/l1-contracts/upgrade-envs/v0.28.0-precompiles/testnet.toml +++ b/l1-contracts/upgrade-envs/v0.28.0-precompiles/testnet.toml @@ -31,9 +31,9 @@ diamond_init_max_pubdata_per_batch = 120000 diamond_init_max_l2_gas_per_batch = 80000000 diamond_init_priority_tx_max_pubdata = 99000 diamond_init_minimal_l2_gas_price = 250000000 -bootloader_hash = "0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35" -default_aa_hash = "0x010005f72e443c94460f4583fb38ef5d0c5cd9897021c41df840f91465c0392e" -evm_emulator_hash = "0x01000d83e0329d9144ad041430fafcbc2b388e5434db8cb8a96e80157738a1da" +bootloader_hash = "0x0100099f5ca0a8b6327c30672e3e94fc56203860f4159d615463ab99cf0eeece" +default_aa_hash = "0x010005f76ff9047aa9a0caabf27b4d40c44bafa64cbcda4bb85104a46fc6210c" +evm_emulator_hash = "0x01000d8bae37b82f311186426184866498b357f41d7a02ced11f3e3fbfbacd63" bridgehub_proxy_address = "0x35A54c8C757806eB6820629bc82d90E056394C92" rollup_da_manager = "0xB168490e38E5E7e1B8eB256a701Ee8314Cbf0E15" diff --git a/lib/forge-std b/lib/forge-std index 77041d2ce6..bf66061429 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit 77041d2ce690e692d6e03cc812b57d1ddaa4d505 +Subproject commit bf6606142994b1e47e2882ce0cd477c020d77623 diff --git a/system-contracts/contracts/interfaces/IL2GenesisUpgrade.sol b/system-contracts/contracts/interfaces/IL2GenesisUpgrade.sol index ac3d5ae5db..d4189fa370 100644 --- a/system-contracts/contracts/interfaces/IL2GenesisUpgrade.sol +++ b/system-contracts/contracts/interfaces/IL2GenesisUpgrade.sol @@ -18,6 +18,7 @@ struct ZKChainSpecificForceDeploymentsData { /// @dev Note, that for simplicity, the same struct is used both for upgrading to the /// Gateway version and for the Genesis. Some fields may not be used in either of those. // solhint-disable-next-line gas-struct-packing +// FIXME: not in sync with L1. struct FixedForceDeploymentsData { uint256 l1ChainId; uint256 eraChainId; diff --git a/tools/data/plonk_scheduler_key.json b/tools/data/plonk_scheduler_key.json index 3394e3ab10..d70235f02b 100644 --- a/tools/data/plonk_scheduler_key.json +++ b/tools/data/plonk_scheduler_key.json @@ -21,76 +21,76 @@ }, { "x": [ - 11488992528554025682, - 12016824828223971094, - 11942004360057333370, - 316831626296641307 + 12439120882917020252, + 4603674259117830135, + 6297446989276811590, + 2123399850946556657 ], "y": [ - 304673622018339856, - 7139037552557818730, - 12475560967982555143, - 1055588351918295250 + 10220507037260689168, + 11241374491454597786, + 15973118107339614711, + 521843610679344070 ], "infinity": false }, { "x": [ - 2274984630539920017, - 5398167177582250136, - 16440396753384808945, - 1037682586893548769 + 15715066533838036060, + 11059681685143415129, + 4870787662770411554, + 1159647983207412381 ], "y": [ - 10168660308952593373, - 16526369642614237721, - 569062739734175056, - 155645558476901406 + 8394070125506170907, + 41826041856157463, + 631230639635767645, + 467580134461448671 ], "infinity": false }, { "x": [ - 14005362797509427677, - 2662603874351919260, - 14261489165672308143, - 1470528288349794782 + 11733439688593311802, + 12319222210937624093, + 3309081654813334902, + 1114587162225550004 ], "y": [ - 11144229651170108862, - 11439490264313454962, - 114993091474760680, - 1037267173208738614 + 4197052014993613566, + 4821731271977339951, + 14047015481964666825, + 1711872781745742456 ], "infinity": false }, { "x": [ - 10726125240955612787, - 1916320162213728495, - 1058608086768277905, - 1651114031905829493 + 15219001464987240023, + 8961456483555760387, + 15117837897563106333, + 3030223284822264653 ], "y": [ - 13237242732587628574, - 4774776044666137690, - 14401013098807103799, - 2514139699916115771 + 12968142591571813986, + 5065279607238647103, + 207758349071650789, + 848531448628342398 ], "infinity": false }, { "x": [ - 14434760601334248377, - 5316938318287831815, - 6221098547630910324, - 980422841280734466 + 12649177996878405830, + 8410121465619263121, + 5841999840016876789, + 3432050514239667632 ], "y": [ - 9201886393750447942, - 3840149540273146267, - 18179910191622136829, - 1563809864380914603 + 3344615194554308192, + 8337538786684402037, + 16710028081277144381, + 2629732962946264758 ], "infinity": false }, @@ -111,16 +111,16 @@ }, { "x": [ - 11830690209042008764, - 11761396005838073769, - 18271188400274886574, - 2896734446482773484 + 6589047172277759225, + 17911123503021253114, + 16255277168099179866, + 1884096824616055644 ], "y": [ - 1890606551566554401, - 10220931290312275762, - 3256711195869515344, - 2466626485328709457 + 6135810355884801970, + 17895376180398608356, + 8649495939352797554, + 1977084321309453096 ], "infinity": false } @@ -128,31 +128,31 @@ "gate_selectors_commitments": [ { "x": [ - 10865727529243127085, - 4083978853392244827, - 14303622309482785753, - 2263042021033673595 + 5619588509762414364, + 2847123497837633699, + 27670305857673483, + 911703275946310098 ], "y": [ - 3019601017411802529, - 880444282195426618, - 9998743525359587628, - 2891421025832200233 + 10669866464583612728, + 1430156461346434337, + 15572663853982875835, + 955054779073406321 ], "infinity": false }, { "x": [ - 5208608554346323426, - 8575970970223832576, - 2966209169082345602, - 239576408267301488 + 7345262911674367640, + 6972261429398436258, + 17562538545678644026, + 2806000066213592867 ], "y": [ - 17715084817752316452, - 2726293100894160682, - 17920596859559317135, - 3485576345363305439 + 4429702331805208742, + 14460818081688948761, + 1145680866681513310, + 2283127411508048261 ], "infinity": false } @@ -160,155 +160,155 @@ "permutation_commitments": [ { "x": [ - 14761045450946573029, - 17157644513453531531, - 2555518804134782053, - 1415819224310783987 + 1868300315761267090, + 15802033210543746641, + 8534595760965834964, + 2448274172510675182 ], "y": [ - 17265629196749977462, - 4128711855633066822, - 8435602817910411328, - 1408116296902303196 + 16340735565482819184, + 10149723501707690391, + 4636653037057186643, + 2272241839098591910 ], "infinity": false }, { "x": [ - 3307267823832528482, - 2406249680085831639, - 9091964031261402109, - 2846274000290842933 + 5775336245836605557, + 14600504132423684969, + 13833233632296029559, + 2000528666555260975 ], "y": [ - 17374905554931807856, - 6690578002079222163, - 11809376320193686210, - 2676076649992974574 + 16689469640213891723, + 1588357422537788680, + 4321818704715924849, + 1459493460102835478 ], "infinity": false }, { "x": [ - 3159118708748226574, - 5508845413629697013, - 13350869305506486049, - 689297560178790472 + 13979562909681501205, + 10691646058581749639, + 1650791506241985375, + 239282985108796448 ], "y": [ - 15696011303896469684, - 12551611148155235140, - 14438660833518031207, - 425021756161657108 + 4669434398367400190, + 12380828721384668112, + 6881869590105108782, + 952424959716239854 ], "infinity": false }, { "x": [ - 18349397811516917436, - 4473982696343317918, - 13070312540813307819, - 2109468484629113245 + 2285530208871343051, + 1679927667904341182, + 10913828212698406918, + 685659054634025848 ], "y": [ - 13254534552549721008, - 17388411854346636521, - 17875890960520499518, - 1062184221180884481 + 16052129049204113438, + 2899179843000748087, + 1331882773349429567, + 1401833359490854970 ], "infinity": false } ], - "total_lookup_entries_length": 1787472, + "total_lookup_entries_length": 2169740, "lookup_selector_commitment": { "x": [ - 9324906502432882695, - 14977861238256290580, - 12538013124354067293, - 3408438202312564138 + 7392841784020577478, + 2009970914997720098, + 1424961073353364573, + 3436741317927930512 ], "y": [ - 14942105932194201701, - 12210090881357612547, - 14774705021036784261, - 2531694948512337448 + 4959474485791584954, + 13655555628474304079, + 8297711498672437315, + 1731027795559462745 ], "infinity": false }, "lookup_tables_commitments": [ { "x": [ - 10873859091125335643, - 3906092213625635374, - 17046157606087980048, - 3193402705223440293 + 897822537414698285, + 17665973795019968932, + 1195419480229484773, + 2084166929700136554 ], "y": [ - 10158946293873382504, - 2171386304067884865, - 6918663094168980658, - 350601565475975409 + 5296816990253648618, + 16922356916840562030, + 11336308560012699481, + 126666982062319788 ], "infinity": false }, { "x": [ - 12822112641313049260, - 3646552465186399021, - 10324071010773924047, - 2209084192380614662 + 6957634507079566781, + 8058361651031558499, + 16862517720681558322, + 111593361950962657 ], "y": [ - 11045141628975531869, - 12589678537679955590, - 3065046617868727674, - 2099447669854151830 + 11734634424584451385, + 5396860709597167063, + 14813917840196304067, + 3265143229124653468 ], "infinity": false }, { "x": [ - 11395032673621937545, - 3000063650268118516, - 7857619430005721792, - 805706808484810738 + 9382965509915622520, + 9401968892542036265, + 17398030800861302579, + 2466058251527383170 ], "y": [ - 6817063666434679427, - 1646386051225388537, - 4677946977082722827, - 1369650305976868514 + 16336975584430651817, + 8212233760381171729, + 8358952622991921953, + 3105872723644097701 ], "infinity": false }, { "x": [ - 2885179371868476351, - 159944842081142878, - 6092294387055034894, - 213843603626505240 + 8389621898210843222, + 17336652738888095740, + 11925800621584298169, + 320147293004454046 ], "y": [ - 11868113133779277990, - 8509646480531194854, - 14088068011597639414, - 707070630614027545 + 2380269656823844626, + 17672836992938385161, + 12050040030659890952, + 1726026273235195745 ], "infinity": false } ], "lookup_table_type_commitment": { "x": [ - 1732877442096985191, - 7537030715658833452, - 14073502080301311448, - 2178792007727681099 + 3245340797522593059, + 4263237951688315905, + 8959127244796298796, + 950016934115559406 ], "y": [ - 8513095304113652904, - 6581396660744182779, - 13939755637576387431, - 2477157044961106453 + 12506950394382550629, + 4767027291223966075, + 9788049244961652866, + 1358273967821077593 ], "infinity": false }, @@ -367,30 +367,30 @@ { "x": { "c0": [ - 9089143573911733168, - 11482283522806384523, - 13585589533905622862, - 79029415676722370 + 15451167643329881831, + 9228925060279880290, + 4433306395751374620, + 1255845450637707535 ], "c1": [ - 5692040832573735873, - 16884514497384809355, - 16717166481813659368, - 2742131088506155463 + 476882876249840273, + 16793192598945834288, + 8893001436335237180, + 1329697912054486455 ] }, "y": { "c0": [ - 9604638503594647125, - 1289961608472612514, - 6217038149984805214, - 2521661352385209130 + 15206726185137783154, + 1494909695784804695, + 10827978837991643599, + 532622142151833136 ], "c1": [ - 17168069778630926308, - 11309277837895768996, - 15154989611154567813, - 359271377050603491 + 12161637074950439387, + 14517847680076186446, + 5367707808722889925, + 2675751259853944939 ] }, "infinity": false diff --git a/yarn.lock b/yarn.lock index 8f227e2b23..f1373bf1bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,7 +4,7 @@ "@babel/code-frame@^7.0.0": version "7.24.2" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz" integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== dependencies: "@babel/highlight" "^7.24.2" @@ -12,12 +12,12 @@ "@babel/helper-validator-identifier@^7.22.20": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz" integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== "@babel/highlight@^7.24.2": version "7.24.2" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz" integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== dependencies: "@babel/helper-validator-identifier" "^7.22.20" @@ -27,17 +27,17 @@ "@balena/dockerignore@^1.0.2": version "1.0.2" - resolved "https://registry.yarnpkg.com/@balena/dockerignore/-/dockerignore-1.0.2.tgz#9ffe4726915251e8eb69f44ef3547e0da2c03e0d" + resolved "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz" integrity sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q== "@blakek/curry@^2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@blakek/curry/-/curry-2.0.2.tgz#979e927bcf5fa0426d2af681d7131df5791d1cd4" + resolved "https://registry.npmjs.org/@blakek/curry/-/curry-2.0.2.tgz" integrity sha512-B/KkDnZqm9Y92LwETU80BaxbQ61bYTR2GaAY41mKisaICwBoC8lcuw7lwQLl52InMhviCTJBO39GJOA8d+BrVw== "@blakek/deep@^2.2.0": version "2.2.0" - resolved "https://registry.yarnpkg.com/@blakek/deep/-/deep-2.2.0.tgz#eb97488e4a0943df4da09ad50efba4a98789f5e5" + resolved "https://registry.npmjs.org/@blakek/deep/-/deep-2.2.0.tgz" integrity sha512-aRq/qF1yrlhCWNk2tI4epXNpo+cA8/MrxsR5oIkpKKNYtYOQKjAxRMbgnhASPx+b328MkDN+T706yFKJg8VZkQ== dependencies: "@blakek/curry" "^2.0.2" @@ -45,31 +45,31 @@ "@colors/colors@1.5.0": version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@cspotcode/source-map-support@^0.8.0": version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== "@eslint/eslintrc@^2.1.4": version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" @@ -84,12 +84,12 @@ "@eslint/js@8.57.0": version "8.57.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz" integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== "@ethereum-waffle/chai@4.0.10": version "4.0.10" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/chai/-/chai-4.0.10.tgz#6f600a40b6fdaed331eba42b8625ff23f3a0e59a" + resolved "https://registry.npmjs.org/@ethereum-waffle/chai/-/chai-4.0.10.tgz" integrity sha512-X5RepE7Dn8KQLFO7HHAAe+KeGaX/by14hn90wePGBhzL54tq4Y8JscZFu+/LCwCl6TnkAAy5ebiMoqJ37sFtWw== dependencies: "@ethereum-waffle/provider" "4.0.5" @@ -98,7 +98,7 @@ "@ethereum-waffle/compiler@4.0.3": version "4.0.3" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/compiler/-/compiler-4.0.3.tgz#069e2df24b879b8a7b78857bad6f8bf6ebc8a5b1" + resolved "https://registry.npmjs.org/@ethereum-waffle/compiler/-/compiler-4.0.3.tgz" integrity sha512-5x5U52tSvEVJS6dpCeXXKvRKyf8GICDwiTwUvGD3/WD+DpvgvaoHOL82XqpTSUHgV3bBq6ma5/8gKUJUIAnJCw== dependencies: "@resolver-engine/imports" "^0.3.3" @@ -111,17 +111,17 @@ "@ethereum-waffle/ens@4.0.3": version "4.0.3" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/ens/-/ens-4.0.3.tgz#4a46ac926414f3c83b4e8cc2562c8e2aee06377a" + resolved "https://registry.npmjs.org/@ethereum-waffle/ens/-/ens-4.0.3.tgz" integrity sha512-PVLcdnTbaTfCrfSOrvtlA9Fih73EeDvFS28JQnT5M5P4JMplqmchhcZB1yg/fCtx4cvgHlZXa0+rOCAk2Jk0Jw== "@ethereum-waffle/mock-contract@4.0.4": version "4.0.4" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/mock-contract/-/mock-contract-4.0.4.tgz#f13fea29922d87a4d2e7c4fc8fe72ea04d2c13de" + resolved "https://registry.npmjs.org/@ethereum-waffle/mock-contract/-/mock-contract-4.0.4.tgz" integrity sha512-LwEj5SIuEe9/gnrXgtqIkWbk2g15imM/qcJcxpLyAkOj981tQxXmtV4XmQMZsdedEsZ/D/rbUAOtZbgwqgUwQA== "@ethereum-waffle/provider@4.0.5": version "4.0.5" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/provider/-/provider-4.0.5.tgz#8a65dbf0263f4162c9209608205dee1c960e716b" + resolved "https://registry.npmjs.org/@ethereum-waffle/provider/-/provider-4.0.5.tgz" integrity sha512-40uzfyzcrPh+Gbdzv89JJTMBlZwzya1YLDyim8mVbEqYLP5VRYWoGp0JMyaizgV3hMoUFRqJKVmIUw4v7r3hYw== dependencies: "@ethereum-waffle/ens" "4.0.3" @@ -131,7 +131,7 @@ "@ethereumjs/block@^3.5.0", "@ethereumjs/block@^3.6.0", "@ethereumjs/block@^3.6.2": version "3.6.3" - resolved "https://registry.yarnpkg.com/@ethereumjs/block/-/block-3.6.3.tgz#d96cbd7af38b92ebb3424223dbf773f5ccd27f84" + resolved "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz" integrity sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg== dependencies: "@ethereumjs/common" "^2.6.5" @@ -141,7 +141,7 @@ "@ethereumjs/blockchain@^5.5.0": version "5.5.3" - resolved "https://registry.yarnpkg.com/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz#aa49a6a04789da6b66b5bcbb0d0b98efc369f640" + resolved "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz" integrity sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw== dependencies: "@ethereumjs/block" "^3.6.2" @@ -155,7 +155,7 @@ "@ethereumjs/common@2.6.0": version "2.6.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.0.tgz#feb96fb154da41ee2cc2c5df667621a440f36348" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz" integrity sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA== dependencies: crc-32 "^1.2.0" @@ -163,7 +163,7 @@ "@ethereumjs/common@^2.6.0", "@ethereumjs/common@^2.6.4", "@ethereumjs/common@^2.6.5": version "2.6.5" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== dependencies: crc-32 "^1.2.0" @@ -171,7 +171,7 @@ "@ethereumjs/ethash@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/ethash/-/ethash-1.1.0.tgz#7c5918ffcaa9cb9c1dc7d12f77ef038c11fb83fb" + resolved "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz" integrity sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA== dependencies: "@ethereumjs/block" "^3.5.0" @@ -182,12 +182,12 @@ "@ethereumjs/rlp@^4.0.1": version "4.0.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" + resolved "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz" integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== "@ethereumjs/tx@3.4.0": version "3.4.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.4.0.tgz#7eb1947eefa55eb9cf05b3ca116fb7a3dbd0bce7" + resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.4.0.tgz" integrity sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw== dependencies: "@ethereumjs/common" "^2.6.0" @@ -195,7 +195,7 @@ "@ethereumjs/tx@^3.4.0", "@ethereumjs/tx@^3.5.2": version "3.5.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" + resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== dependencies: "@ethereumjs/common" "^2.6.4" @@ -203,7 +203,7 @@ "@ethereumjs/util@^8.1.0": version "8.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" + resolved "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz" integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== dependencies: "@ethereumjs/rlp" "^4.0.1" @@ -212,7 +212,7 @@ "@ethereumjs/vm@5.6.0": version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-5.6.0.tgz#e0ca62af07de820143674c30b776b86c1983a464" + resolved "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.6.0.tgz" integrity sha512-J2m/OgjjiGdWF2P9bj/4LnZQ1zRoZhY8mRNVw/N3tXliGI8ai1sI1mlDPkLpeUUM4vq54gH6n0ZlSpz8U/qlYQ== dependencies: "@ethereumjs/block" "^3.6.0" @@ -230,7 +230,7 @@ "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== dependencies: "@ethersproject/address" "^5.7.0" @@ -245,7 +245,7 @@ "@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -258,7 +258,7 @@ "@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -269,7 +269,7 @@ "@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -280,14 +280,14 @@ "@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -295,7 +295,7 @@ "@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -304,21 +304,21 @@ "@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" "@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" "@ethersproject/contracts@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz" integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== dependencies: "@ethersproject/abi" "^5.7.0" @@ -334,7 +334,7 @@ "@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -349,7 +349,7 @@ "@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -367,7 +367,7 @@ "@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz" integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -386,7 +386,7 @@ "@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -394,19 +394,19 @@ "@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== "@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" "@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz" integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -414,14 +414,14 @@ "@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" "@ethersproject/providers@5.7.2": version "5.7.2" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -447,7 +447,7 @@ "@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -455,7 +455,7 @@ "@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -463,7 +463,7 @@ "@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -472,7 +472,7 @@ "@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -484,7 +484,7 @@ "@ethersproject/solidity@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz" integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -496,7 +496,7 @@ "@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -505,7 +505,7 @@ "@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== dependencies: "@ethersproject/address" "^5.7.0" @@ -520,7 +520,7 @@ "@ethersproject/units@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz" integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -529,7 +529,7 @@ "@ethersproject/wallet@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz" integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -550,7 +550,7 @@ "@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== dependencies: "@ethersproject/base64" "^5.7.0" @@ -561,7 +561,7 @@ "@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz" integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -572,19 +572,19 @@ "@fastify/busboy@^2.0.0": version "2.1.1" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" + resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz" integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== "@ganache/ethereum-address@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/ethereum-address/-/ethereum-address-0.1.4.tgz#0e6d66f4a24f64bf687cb3ff7358fb85b9d9005e" + resolved "https://registry.npmjs.org/@ganache/ethereum-address/-/ethereum-address-0.1.4.tgz" integrity sha512-sTkU0M9z2nZUzDeHRzzGlW724xhMLXo2LeX1hixbnjHWY1Zg1hkqORywVfl+g5uOO8ht8T0v+34IxNxAhmWlbw== dependencies: "@ganache/utils" "0.1.4" "@ganache/ethereum-options@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/ethereum-options/-/ethereum-options-0.1.4.tgz#6a559abb44225e2b8741a8f78a19a46714a71cd6" + resolved "https://registry.npmjs.org/@ganache/ethereum-options/-/ethereum-options-0.1.4.tgz" integrity sha512-i4l46taoK2yC41FPkcoDlEVoqHS52wcbHPqJtYETRWqpOaoj9hAg/EJIHLb1t6Nhva2CdTO84bG+qlzlTxjAHw== dependencies: "@ganache/ethereum-address" "0.1.4" @@ -596,7 +596,7 @@ "@ganache/ethereum-utils@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/ethereum-utils/-/ethereum-utils-0.1.4.tgz#fae4b5b9e642e751ff1fa0cd7316c92996317257" + resolved "https://registry.npmjs.org/@ganache/ethereum-utils/-/ethereum-utils-0.1.4.tgz" integrity sha512-FKXF3zcdDrIoCqovJmHLKZLrJ43234Em2sde/3urUT/10gSgnwlpFmrv2LUMAmSbX3lgZhW/aSs8krGhDevDAg== dependencies: "@ethereumjs/common" "2.6.0" @@ -611,7 +611,7 @@ "@ganache/options@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/options/-/options-0.1.4.tgz#325b07e6de85094667aaaaf3d653e32404a04b78" + resolved "https://registry.npmjs.org/@ganache/options/-/options-0.1.4.tgz" integrity sha512-zAe/craqNuPz512XQY33MOAG6Si1Xp0hCvfzkBfj2qkuPcbJCq6W/eQ5MB6SbXHrICsHrZOaelyqjuhSEmjXRw== dependencies: "@ganache/utils" "0.1.4" @@ -620,7 +620,7 @@ "@ganache/rlp@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/rlp/-/rlp-0.1.4.tgz#f4043afda83e1a14a4f80607b103daf166a9b374" + resolved "https://registry.npmjs.org/@ganache/rlp/-/rlp-0.1.4.tgz" integrity sha512-Do3D1H6JmhikB+6rHviGqkrNywou/liVeFiKIpOBLynIpvZhRCgn3SEDxyy/JovcaozTo/BynHumfs5R085MFQ== dependencies: "@ganache/utils" "0.1.4" @@ -628,7 +628,7 @@ "@ganache/utils@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/utils/-/utils-0.1.4.tgz#25d60d7689e3dda6a8a7ad70e3646f07c2c39a1f" + resolved "https://registry.npmjs.org/@ganache/utils/-/utils-0.1.4.tgz" integrity sha512-oatUueU3XuXbUbUlkyxeLLH3LzFZ4y5aSkNbx6tjSIhVTPeh+AuBKYt4eQ73FFcTB3nj/gZoslgAh5CN7O369w== dependencies: emittery "0.10.0" @@ -639,7 +639,7 @@ "@humanwhocodes/config-array@^0.11.14": version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: "@humanwhocodes/object-schema" "^2.0.2" @@ -648,27 +648,27 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.2": version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== "@jridgewell/resolve-uri@^3.0.3": version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" @@ -676,12 +676,12 @@ "@matterlabs/eslint-config-typescript@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@matterlabs/eslint-config-typescript/-/eslint-config-typescript-1.1.2.tgz#a9be4e56aedf298800f247c5049fc412f8b301a7" + resolved "https://registry.npmjs.org/@matterlabs/eslint-config-typescript/-/eslint-config-typescript-1.1.2.tgz" integrity sha512-AhiWJQr+MSE3RVfgp5XwGoMK7kNSKh6a18+T7hkNJtyycP0306I6IGmuFA5ZVbcakGb+K32fQWzepSkrNCTAGg== "@matterlabs/hardhat-zksync-chai-matchers@^0.2.0": version "0.2.1" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-chai-matchers/-/hardhat-zksync-chai-matchers-0.2.1.tgz#d05136d6cf9a53c30f5e7ee9bae95abb72c1000d" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-chai-matchers/-/hardhat-zksync-chai-matchers-0.2.1.tgz" integrity sha512-LXm5r53DLTQC/KXRXzSRmVp5mEJ4tsoKAKyGck2YLHQ9CBdPoC0paVjbyB2MaEuK/k8o4lZu4uaYKgWQNUXeyQ== dependencies: "@ethersproject/abi" "^5.1.2" @@ -696,7 +696,7 @@ "@matterlabs/hardhat-zksync-deploy@^0.6.5": version "0.6.6" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-deploy/-/hardhat-zksync-deploy-0.6.6.tgz#5c86cf7da859844167d62300528c3e6013ee0286" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-deploy/-/hardhat-zksync-deploy-0.6.6.tgz" integrity sha512-QpkxK2wnyQCgaTVLdFATpfiySfr7073yPre9eq5LfKA8VxXWD4WZAuBMq700GL5UyfW9yyHkCdkSzaGigmZ4/Q== dependencies: "@matterlabs/hardhat-zksync-solc" "0.4.2" @@ -705,7 +705,7 @@ "@matterlabs/hardhat-zksync-deploy@^0.7.0": version "0.7.0" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-deploy/-/hardhat-zksync-deploy-0.7.0.tgz#e56b73d8f8fbd0f809a779d0028418ea7d914017" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-deploy/-/hardhat-zksync-deploy-0.7.0.tgz" integrity sha512-PGZcuhKsVzZ2IWPt931pK2gA+HDxnCtye+7CwvoOnM6diHeO9tB1QHFX/ywR9ErOW9wpezhPYkVDx9myFrdoqQ== dependencies: "@matterlabs/hardhat-zksync-solc" "^1.0.5" @@ -714,7 +714,7 @@ "@matterlabs/hardhat-zksync-node@^0.0.1-beta.7": version "0.0.1" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-node/-/hardhat-zksync-node-0.0.1.tgz#d44bda3c0069b149e2a67c9697eb81166b169ea6" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-node/-/hardhat-zksync-node-0.0.1.tgz" integrity sha512-rMabl+I813lzXINqTq5OvujQ30wsfO9mTLMPDXuYzEEhEzvnXlaVxuqynKBXrgXAxjmr+G79rqvcWgeKygtwBA== dependencies: "@matterlabs/hardhat-zksync-solc" "^1.0.5" @@ -724,7 +724,7 @@ "@matterlabs/hardhat-zksync-node@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-node/-/hardhat-zksync-node-1.2.0.tgz#800b24d33ca3a35c92afdc75d1ab05a6a957b15f" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-node/-/hardhat-zksync-node-1.2.0.tgz" integrity sha512-cTL8FrsolQEJMn2K25Nj/78rydRs/YiQyUu3Q1Rn5axrtVWXWATUP4z7hE5qH2lWk3VZcC9GYFrewP5c1Q+A9Q== dependencies: "@matterlabs/hardhat-zksync-solc" "^1.2.5" @@ -741,7 +741,7 @@ "@matterlabs/hardhat-zksync-solc@0.4.2": version "0.4.2" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.4.2.tgz#64121082e88c5ab22eb4e9594d120e504f6af499" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.4.2.tgz" integrity sha512-6NFWPSZiOAoo7wNuhMg4ztj7mMEH+tLrx09WuCbcURrHPijj/KxYNsJD6Uw5lapKr7G8H7SQISGid1/MTXVmXQ== dependencies: "@nomiclabs/hardhat-docker" "^2.0.0" @@ -753,7 +753,7 @@ "@matterlabs/hardhat-zksync-solc@1.0.6": version "1.0.6" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-1.0.6.tgz#7ef8438e6bb15244691600e2afa77aaff7dff9f0" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-1.0.6.tgz" integrity sha512-0icYSufXba/Bbb7v2iXuZJ+IbYsiNpR4Wy6UizHnGuFw3OMHgh+saebQphuaN9yyRL2UPGZbPkQFHWBLZj5/xQ== dependencies: "@nomiclabs/hardhat-docker" "^2.0.0" @@ -765,7 +765,7 @@ "@matterlabs/hardhat-zksync-solc@^0.3.15": version "0.3.17" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.3.17.tgz#72f199544dc89b268d7bfc06d022a311042752fd" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.3.17.tgz" integrity sha512-aZgQ0yfXW5xPkfuEH1d44ncWV4T2LzKZd0VVPo4PL5cUrYs2/II1FaEDp5zsf3FxOR1xT3mBsjuSrtJkk4AL8Q== dependencies: "@nomiclabs/hardhat-docker" "^2.0.0" @@ -774,7 +774,7 @@ "@matterlabs/hardhat-zksync-solc@^1.0.5", "@matterlabs/hardhat-zksync-solc@^1.1.4": version "1.1.4" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-1.1.4.tgz#04a2fad6fb6b6944c64ad969080ee65b9af3f617" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-1.1.4.tgz" integrity sha512-4/usbogh9neewR2/v8Dn2OzqVblZMUuT/iH2MyPZgPRZYQlL4SlZtMvokU9UQjZT6iSoaKCbbdWESHDHSzfUjA== dependencies: "@nomiclabs/hardhat-docker" "^2.0.0" @@ -791,7 +791,7 @@ "@matterlabs/hardhat-zksync-solc@^1.2.5": version "1.2.5" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-1.2.5.tgz#fbeeabc3fea0dd232fa3c8cb31bd93c103eba11a" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-1.2.5.tgz" integrity sha512-iZyznWl1Hoe/Z46hnUe1s2drBZBjJOS/eN+Ql2lIBX9B6NevBl9DYzkKzH5HEIMCLGnX9sWpRAJqUQJWy9UB6w== dependencies: "@nomiclabs/hardhat-docker" "^2.0.2" @@ -808,7 +808,7 @@ "@matterlabs/hardhat-zksync-verify@0.6.1": version "0.6.1" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-0.6.1.tgz#3fd83f4177ac0b138656ed93d4756ec27f1d329d" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-0.6.1.tgz" integrity sha512-W9gI4k1UnuQ2MaBnK1f7E8Z2C4uHxpeDkzmB/ZCKClai2A3vK2jAbfqiQbX0HvuLq2OOq4dbx83KehAXjXoHlw== dependencies: "@ethersproject/abi" "^5.1.2" @@ -828,7 +828,7 @@ "@matterlabs/hardhat-zksync-verify@^0.4.0": version "0.4.0" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-0.4.0.tgz#f812c19950022fc36728f3796f6bdae5633e2fcd" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-0.4.0.tgz" integrity sha512-GPZmAumFl3ZMPKbECX7Qw8CriwZKWd1DlCRhoG/6YYc6mFy4+MXkF1XsHLMs5r34N+GDOfbVZVMeftIlJC96Kg== dependencies: "@matterlabs/hardhat-zksync-solc" "^1.0.5" @@ -840,7 +840,7 @@ "@matterlabs/hardhat-zksync-verify@^1.4.3": version "1.4.3" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-1.4.3.tgz#fc36d2ea385eab553ce0b3c3fbc9e216c607873f" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-1.4.3.tgz" integrity sha512-TONID/+mG8KngZ9iI8yiOgC8VD+cus7M+ejCjF4bGNzsmmzsklGJwzry6bQpk8BXqzsMgbuV+4KjDT4JXiS/QA== dependencies: "@ethersproject/abi" "^5.1.2" @@ -859,17 +859,17 @@ "@matterlabs/prettier-config@^1.0.3": version "1.0.3" - resolved "https://registry.yarnpkg.com/@matterlabs/prettier-config/-/prettier-config-1.0.3.tgz#3e2eb559c0112bbe9671895f935700dad2a15d38" + resolved "https://registry.npmjs.org/@matterlabs/prettier-config/-/prettier-config-1.0.3.tgz" integrity sha512-JW7nHREPqEtjBWz3EfxLarkmJBD8vi7Kx/1AQ6eBZnz12eHc1VkOyrc6mpR5ogTf0dOUNXFAfZut+cDe2dn4kQ== "@matterlabs/zksync-contracts@^0.6.1": version "0.6.1" - resolved "https://registry.yarnpkg.com/@matterlabs/zksync-contracts/-/zksync-contracts-0.6.1.tgz#39f061959d5890fd0043a2f1ae710f764b172230" + resolved "https://registry.npmjs.org/@matterlabs/zksync-contracts/-/zksync-contracts-0.6.1.tgz" integrity sha512-+hucLw4DhGmTmQlXOTEtpboYCaOm/X2VJcWmnW4abNcOgQXEHX+mTxQrxEfPjIZT0ZE6z5FTUrOK9+RgUZwBMQ== "@metamask/eth-sig-util@^4.0.0": version "4.0.1" - resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" + resolved "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz" integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== dependencies: ethereumjs-abi "^0.6.8" @@ -880,34 +880,34 @@ "@noble/curves@1.3.0", "@noble/curves@~1.3.0": version "1.3.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz" integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== dependencies: "@noble/hashes" "1.3.3" "@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz" integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== "@noble/hashes@1.3.3", "@noble/hashes@~1.3.2": version "1.3.3" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz" integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== "@noble/hashes@^1.4.0": version "1.4.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== "@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": version "1.7.1" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -915,12 +915,12 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -928,112 +928,42 @@ "@nomicfoundation/edr-darwin-arm64@0.3.7": version "0.3.7" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.3.7.tgz#c204edc79643624dbd431b489b254778817d8244" + resolved "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.3.7.tgz" integrity sha512-6tK9Lv/lSfyBvpEQ4nsTfgxyDT1y1Uv/x8Wa+aB+E8qGo3ToexQ1BMVjxJk6PChXCDOWxB3B4KhqaZFjdhl3Ow== -"@nomicfoundation/edr-darwin-arm64@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.4.0.tgz#bbb43f0e01f40839b0bd38c2c443cb6910ae955f" - integrity sha512-7+rraFk9tCqvfemv9Ita5vTlSBAeO/S5aDKOgGRgYt0JEKZlrX161nDW6UfzMPxWl9GOLEDUzCEaYuNmXseUlg== - -"@nomicfoundation/edr-darwin-arm64@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.5.2.tgz#72f7a826c9f0f2c91308edca562de3b9484ac079" - integrity sha512-Gm4wOPKhbDjGTIRyFA2QUAPfCXA1AHxYOKt3yLSGJkQkdy9a5WW+qtqKeEKHc/+4wpJSLtsGQfpzyIzggFfo/A== - "@nomicfoundation/edr-darwin-x64@0.3.7": version "0.3.7" resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.3.7.tgz#c3b394445084270cc5250d6c1869b0574e7ef810" integrity sha512-1RrQ/1JPwxrYO69e0tglFv5H+ggour5Ii3bb727+yBpBShrxtOTQ7fZyfxA5h62LCN+0Z9wYOPeQ7XFcVurMaQ== -"@nomicfoundation/edr-darwin-x64@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.4.0.tgz#b1ffcd9142418fd8498de34a7336b3f977907c86" - integrity sha512-+Hrc0mP9L6vhICJSfyGo/2taOToy1AIzVZawO3lU8Lf7oDQXfhQ4UkZnkWAs9SVu1eUwHUGGGE0qB8644piYgg== - -"@nomicfoundation/edr-darwin-x64@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.5.2.tgz#6d0fedb219d664631c6feddc596ab8c3bbc36fa8" - integrity sha512-ClyABq2dFCsrYEED3/UIO0c7p4H1/4vvlswFlqUyBpOkJccr75qIYvahOSJRM62WgUFRhbSS0OJXFRwc/PwmVg== - "@nomicfoundation/edr-linux-arm64-gnu@0.3.7": version "0.3.7" resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.3.7.tgz#6d65545a44d1323bb7ab08c3306947165d2071de" integrity sha512-ds/CKlBoVXIihjhflhgPn13EdKWed6r5bgvMs/YwRqT5wldQAQJZWAfA2+nYm0Yi2gMGh1RUpBcfkyl4pq7G+g== -"@nomicfoundation/edr-linux-arm64-gnu@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.4.0.tgz#8173d16d4f6f2b3e82ba7096d2a1ea3619d8bfa7" - integrity sha512-4HUDMchNClQrVRfVTqBeSX92hM/3khCgpZkXP52qrnJPqgbdCxosOehlQYZ65wu0b/kaaZSyvACgvCLSQ5oSzQ== - -"@nomicfoundation/edr-linux-arm64-gnu@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.5.2.tgz#60e4d52d963141bc2bb4a02639dc590a7fbdda2f" - integrity sha512-HWMTVk1iOabfvU2RvrKLDgtFjJZTC42CpHiw2h6rfpsgRqMahvIlx2jdjWYzFNy1jZKPTN1AStQ/91MRrg5KnA== - "@nomicfoundation/edr-linux-arm64-musl@0.3.7": version "0.3.7" resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.3.7.tgz#5368534bceac1a8c18b1be6b908caca5d39b0c03" integrity sha512-e29udiRaPujhLkM3+R6ju7QISrcyOqpcaxb2FsDWBkuD7H8uU9JPZEyyUIpEp5uIY0Jh1eEJPKZKIXQmQAEAuw== -"@nomicfoundation/edr-linux-arm64-musl@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.4.0.tgz#b1ce293a7c3e0d9f70391e1aef1a82b83b997567" - integrity sha512-D4J935ZRL8xfnP3zIFlCI9jXInJ0loDUkCTLeCEbOf2uuDumWDghKNQlF1itUS+EHaR1pFVBbuwqq8hVK0dASg== - -"@nomicfoundation/edr-linux-arm64-musl@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.5.2.tgz#6676a09eab57c435a16ffc144658c896acca9baa" - integrity sha512-CwsQ10xFx/QAD5y3/g5alm9+jFVuhc7uYMhrZAu9UVF+KtVjeCvafj0PaVsZ8qyijjqVuVsJ8hD1x5ob7SMcGg== - "@nomicfoundation/edr-linux-x64-gnu@0.3.7": version "0.3.7" resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.3.7.tgz#42349bf5941dbb54a5719942924c6e4e8cde348e" integrity sha512-/xkjmTyv+bbJ4akBCW0qzFKxPOV4AqLOmqurov+s9umHb16oOv72osSa3SdzJED2gHDaKmpMITT4crxbar4Axg== -"@nomicfoundation/edr-linux-x64-gnu@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.4.0.tgz#4c12c4e4bfd3d837f5663ad7cbf7cb6d5634ef83" - integrity sha512-6x7HPy+uN5Cb9N77e2XMmT6+QSJ+7mRbHnhkGJ8jm4cZvWuj2Io7npOaeHQ3YHK+TiQpTnlbkjoOIpEwpY3XZA== - -"@nomicfoundation/edr-linux-x64-gnu@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.5.2.tgz#f558d9697ce961410e7a7468f9ab8c8a601b9df6" - integrity sha512-CWVCEdhWJ3fmUpzWHCRnC0/VLBDbqtqTGTR6yyY1Ep3S3BOrHEAvt7h5gx85r2vLcztisu2vlDq51auie4IU1A== - "@nomicfoundation/edr-linux-x64-musl@0.3.7": version "0.3.7" resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.3.7.tgz#e6babe11c9a8012f1284e6e48c3551861f2a7cd4" integrity sha512-QwBP9xlmsbf/ldZDGLcE4QiAb8Zt46E/+WLpxHBATFhGa7MrpJh6Zse+h2VlrT/SYLPbh2cpHgSmoSlqVxWG9g== -"@nomicfoundation/edr-linux-x64-musl@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.4.0.tgz#8842004aa1a47c504f10863687da28b65dca7baa" - integrity sha512-3HFIJSXgyubOiaN4MWGXx2xhTnhwlJk0PiSYNf9+L/fjBtcRkb2nM910ZJHTvqCb6OT98cUnaKuAYdXIW2amgw== - -"@nomicfoundation/edr-linux-x64-musl@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.5.2.tgz#c9c9cbb2997499f75c1d022be724b0551d44569f" - integrity sha512-+aJDfwhkddy2pP5u1ISg3IZVAm0dO836tRlDTFWtvvSMQ5hRGqPcWwlsbobhDQsIxhPJyT7phL0orCg5W3WMeA== - "@nomicfoundation/edr-win32-x64-msvc@0.3.7": version "0.3.7" resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.3.7.tgz#1504b98f305f03be153b0220a546985660de9dc6" integrity sha512-j/80DEnkxrF2ewdbk/gQ2EOPvgF0XSsg8D0o4+6cKhUVAW6XwtWKzIphNL6dyD2YaWEPgIrNvqiJK/aln0ww4Q== -"@nomicfoundation/edr-win32-x64-msvc@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.4.0.tgz#29d8bbb2edf9912a95f5453855cf17cdcb269957" - integrity sha512-CP4GsllEfXEz+lidcGYxKe5rDJ60TM5/blB5z/04ELVvw6/CK9eLcYeku7HV0jvV7VE6dADYKSdQyUkvd0El+A== - -"@nomicfoundation/edr-win32-x64-msvc@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.5.2.tgz#f16db88bf4fe09a996af0a25096e09deecb72bfa" - integrity sha512-CcvvuA3sAv7liFNPsIR/68YlH6rrybKzYttLlMr80d4GKJjwJ5OKb3YgE6FdZZnOfP19HEHhsLcE0DPLtY3r0w== - "@nomicfoundation/edr@^0.3.1": version "0.3.7" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.3.7.tgz#9c75edf1fcf601617905b2c89acf103f4786d017" + resolved "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.3.7.tgz" integrity sha512-v2JFWnFKRsnOa6PDUrD+sr8amcdhxnG/YbL7LzmgRGU1odWEyOF4/EwNeUajQr4ZNKVWrYnJ6XjydXtUge5OBQ== optionalDependencies: "@nomicfoundation/edr-darwin-arm64" "0.3.7" @@ -1044,47 +974,21 @@ "@nomicfoundation/edr-linux-x64-musl" "0.3.7" "@nomicfoundation/edr-win32-x64-msvc" "0.3.7" -"@nomicfoundation/edr@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.4.0.tgz#4895ecb6ef321136db837458949c37cce4a29459" - integrity sha512-T96DMSogO8TCdbKKctvxfsDljbhFOUKWc9fHJhSeUh71EEho2qR4951LKQF7t7UWEzguVYh/idQr5L/E3QeaMw== - dependencies: - "@nomicfoundation/edr-darwin-arm64" "0.4.0" - "@nomicfoundation/edr-darwin-x64" "0.4.0" - "@nomicfoundation/edr-linux-arm64-gnu" "0.4.0" - "@nomicfoundation/edr-linux-arm64-musl" "0.4.0" - "@nomicfoundation/edr-linux-x64-gnu" "0.4.0" - "@nomicfoundation/edr-linux-x64-musl" "0.4.0" - "@nomicfoundation/edr-win32-x64-msvc" "0.4.0" - -"@nomicfoundation/edr@^0.5.0": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.5.2.tgz#e8c7b3d3dd4a312432ab3930dec60f76dc5c4926" - integrity sha512-hW/iLvUQZNTVjFyX/I40rtKvvDOqUEyIi96T28YaLfmPL+3LW2lxmYLUXEJ6MI14HzqxDqrLyhf6IbjAa2r3Dw== - dependencies: - "@nomicfoundation/edr-darwin-arm64" "0.5.2" - "@nomicfoundation/edr-darwin-x64" "0.5.2" - "@nomicfoundation/edr-linux-arm64-gnu" "0.5.2" - "@nomicfoundation/edr-linux-arm64-musl" "0.5.2" - "@nomicfoundation/edr-linux-x64-gnu" "0.5.2" - "@nomicfoundation/edr-linux-x64-musl" "0.5.2" - "@nomicfoundation/edr-win32-x64-msvc" "0.5.2" - "@nomicfoundation/ethereumjs-common@4.0.4": version "4.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz#9901f513af2d4802da87c66d6f255b510bef5acb" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz" integrity sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg== dependencies: "@nomicfoundation/ethereumjs-util" "9.0.4" "@nomicfoundation/ethereumjs-rlp@5.0.4": version "5.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz#66c95256fc3c909f6fb18f6a586475fc9762fa30" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz" integrity sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw== "@nomicfoundation/ethereumjs-tx@5.0.4": version "5.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz#b0ceb58c98cc34367d40a30d255d6315b2f456da" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz" integrity sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw== dependencies: "@nomicfoundation/ethereumjs-common" "4.0.4" @@ -1094,7 +998,7 @@ "@nomicfoundation/ethereumjs-util@9.0.4": version "9.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz#84c5274e82018b154244c877b76bc049a4ed7b38" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz" integrity sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q== dependencies: "@nomicfoundation/ethereumjs-rlp" "5.0.4" @@ -1102,7 +1006,7 @@ "@nomicfoundation/hardhat-chai-matchers@^1.0.3", "@nomicfoundation/hardhat-chai-matchers@^1.0.6": version "1.0.6" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz#72a2e312e1504ee5dd73fe302932736432ba96bc" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz" integrity sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ== dependencies: "@ethersproject/abi" "^5.1.2" @@ -1113,7 +1017,7 @@ "@nomicfoundation/hardhat-ethers@^3.0.4": version "3.0.5" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz#0422c2123dec7c42e7fb2be8e1691f1d9708db56" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz" integrity sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw== dependencies: debug "^4.1.1" @@ -1121,7 +1025,7 @@ "@nomicfoundation/hardhat-verify@^1.0.2", "@nomicfoundation/hardhat-verify@^1.1.0": version "1.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-verify/-/hardhat-verify-1.1.1.tgz#6a433d777ce0172d1f0edf7f2d3e1df14b3ecfc1" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-1.1.1.tgz" integrity sha512-9QsTYD7pcZaQFEA3tBb/D/oCStYDiEVDN7Dxeo/4SCyHRSm86APypxxdOMEPlGmXsAvd+p1j/dTODcpxb8aztA== dependencies: "@ethersproject/abi" "^5.1.2" @@ -1136,7 +1040,7 @@ "@nomicfoundation/hardhat-verify@^2.0.0": version "2.0.6" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.6.tgz#02623c431244c92a852c524008239fc616e1c658" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.6.tgz" integrity sha512-oKUI5fl8QC8jysE2LUBHE6rObzEmccJcc4b43Ov7LFMlCBZJE27qoqGIsg/++wX7L8Jdga+bkejPxl8NvsecpQ== dependencies: "@ethersproject/abi" "^5.1.2" @@ -1151,7 +1055,7 @@ "@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1": version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz#4c858096b1c17fe58a474fe81b46815f93645c15" + resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz" integrity sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w== "@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1": @@ -1201,7 +1105,7 @@ "@nomicfoundation/solidity-analyzer@^0.1.0": version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz#f5f4d36d3f66752f59a57e7208cd856f3ddf6f2d" + resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz" integrity sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg== optionalDependencies: "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.1" @@ -1217,7 +1121,7 @@ "@nomiclabs/hardhat-docker@^2.0.0", "@nomiclabs/hardhat-docker@^2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-docker/-/hardhat-docker-2.0.2.tgz#ae964be17951275a55859ff7358e9e7c77448846" + resolved "https://registry.npmjs.org/@nomiclabs/hardhat-docker/-/hardhat-docker-2.0.2.tgz" integrity sha512-XgGEpRT3wlA1VslyB57zyAHV+oll8KnV1TjwnxxC1tpAL04/lbdwpdO5KxInVN8irMSepqFpsiSkqlcnvbE7Ng== dependencies: dockerode "^2.5.8" @@ -1226,12 +1130,12 @@ "@nomiclabs/hardhat-ethers@^2.0.0": version "2.2.3" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" + resolved "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz" integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== "@nomiclabs/hardhat-etherscan@^3.1.0", "@nomiclabs/hardhat-etherscan@^3.1.7": version "3.1.8" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.8.tgz#3c12ee90b3733e0775e05111146ef9418d4f5a38" + resolved "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.8.tgz" integrity sha512-v5F6IzQhrsjHh6kQz4uNrym49brK9K5bYCq2zQZ729RYRaifI9hHbtmK+KkIVevfhut7huQFEQ77JLRMAzWYjQ== dependencies: "@ethersproject/abi" "^5.1.2" @@ -1247,54 +1151,54 @@ "@nomiclabs/hardhat-waffle@^2.0.0": version "2.0.6" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz#d11cb063a5f61a77806053e54009c40ddee49a54" + resolved "https://registry.npmjs.org/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz" integrity sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg== "@openzeppelin/contracts-upgradeable-v4@npm:@openzeppelin/contracts-upgradeable@4.9.5": version "4.9.5" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz#572b5da102fc9be1d73f34968e0ca56765969812" + resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz" integrity sha512-f7L1//4sLlflAN7fVzJLoRedrf5Na3Oal5PZfIq55NFcVZ90EpV1q5xOvL4lFvg3MNICSDr2hH0JUBxwlxcoPg== "@openzeppelin/contracts-upgradeable@4.9.5": version "4.9.5" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz#572b5da102fc9be1d73f34968e0ca56765969812" + resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz" integrity sha512-f7L1//4sLlflAN7fVzJLoRedrf5Na3Oal5PZfIq55NFcVZ90EpV1q5xOvL4lFvg3MNICSDr2hH0JUBxwlxcoPg== "@openzeppelin/contracts-v4@npm:@openzeppelin/contracts@4.9.5": version "4.9.5" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.5.tgz#1eed23d4844c861a1835b5d33507c1017fa98de8" + resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.5.tgz" integrity sha512-ZK+W5mVhRppff9BE6YdR8CC52C8zAvsVAiWhEtQ5+oNxFE6h1WdeWo+FJSF8KKvtxxVYZ7MTP/5KoVpAU3aSWg== "@openzeppelin/contracts@4.9.5": version "4.9.5" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.5.tgz#1eed23d4844c861a1835b5d33507c1017fa98de8" + resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.5.tgz" integrity sha512-ZK+W5mVhRppff9BE6YdR8CC52C8zAvsVAiWhEtQ5+oNxFE6h1WdeWo+FJSF8KKvtxxVYZ7MTP/5KoVpAU3aSWg== "@openzeppelin/contracts@^4.9.2": version "4.9.6" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.6.tgz#2a880a24eb19b4f8b25adc2a5095f2aa27f39677" + resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.6.tgz" integrity sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA== "@pkgr/core@^0.1.0": version "0.1.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz" integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== "@pnpm/config.env-replace@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" + resolved "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz" integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== "@pnpm/network.ca-file@^1.0.1": version "1.0.2" - resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" + resolved "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz" integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== dependencies: graceful-fs "4.2.10" "@pnpm/npm-conf@^2.1.0": version "2.2.2" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" + resolved "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz" integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== dependencies: "@pnpm/config.env-replace" "^1.1.0" @@ -1303,7 +1207,7 @@ "@resolver-engine/core@^0.3.3": version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/core/-/core-0.3.3.tgz#590f77d85d45bc7ecc4e06c654f41345db6ca967" + resolved "https://registry.npmjs.org/@resolver-engine/core/-/core-0.3.3.tgz" integrity sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ== dependencies: debug "^3.1.0" @@ -1312,7 +1216,7 @@ "@resolver-engine/fs@^0.3.3": version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/fs/-/fs-0.3.3.tgz#fbf83fa0c4f60154a82c817d2fe3f3b0c049a973" + resolved "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.3.3.tgz" integrity sha512-wQ9RhPUcny02Wm0IuJwYMyAG8fXVeKdmhm8xizNByD4ryZlx6PP6kRen+t/haF43cMfmaV7T3Cx6ChOdHEhFUQ== dependencies: "@resolver-engine/core" "^0.3.3" @@ -1320,7 +1224,7 @@ "@resolver-engine/imports-fs@^0.3.3": version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz#4085db4b8d3c03feb7a425fbfcf5325c0d1e6c1b" + resolved "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz" integrity sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA== dependencies: "@resolver-engine/fs" "^0.3.3" @@ -1329,7 +1233,7 @@ "@resolver-engine/imports@^0.3.3": version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/imports/-/imports-0.3.3.tgz#badfb513bb3ff3c1ee9fd56073e3144245588bcc" + resolved "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.3.3.tgz" integrity sha512-anHpS4wN4sRMwsAbMXhMfOD/y4a4Oo0Cw/5+rue7hSwGWsDOQaAU1ClK1OxjUC35/peazxEl8JaSRRS+Xb8t3Q== dependencies: "@resolver-engine/core" "^0.3.3" @@ -1340,12 +1244,12 @@ "@scure/base@~1.1.0", "@scure/base@~1.1.4": version "1.1.6" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.6.tgz#8ce5d304b436e4c84f896e0550c83e4d88cb917d" + resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.6.tgz" integrity sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g== "@scure/bip32@1.1.5": version "1.1.5" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz" integrity sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw== dependencies: "@noble/hashes" "~1.2.0" @@ -1354,7 +1258,7 @@ "@scure/bip32@1.3.3": version "1.3.3" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.3.tgz#a9624991dc8767087c57999a5d79488f48eae6c8" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz" integrity sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ== dependencies: "@noble/curves" "~1.3.0" @@ -1363,7 +1267,7 @@ "@scure/bip39@1.1.1": version "1.1.1" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz" integrity sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg== dependencies: "@noble/hashes" "~1.2.0" @@ -1371,7 +1275,7 @@ "@scure/bip39@1.2.2": version "1.2.2" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.2.tgz#f3426813f4ced11a47489cbcf7294aa963966527" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz" integrity sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA== dependencies: "@noble/hashes" "~1.3.2" @@ -1379,7 +1283,7 @@ "@sentry/core@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" + resolved "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz" integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== dependencies: "@sentry/hub" "5.30.0" @@ -1390,7 +1294,7 @@ "@sentry/hub@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" + resolved "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz" integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== dependencies: "@sentry/types" "5.30.0" @@ -1399,7 +1303,7 @@ "@sentry/minimal@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" + resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz" integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== dependencies: "@sentry/hub" "5.30.0" @@ -1408,7 +1312,7 @@ "@sentry/node@^5.18.1": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" + resolved "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz" integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg== dependencies: "@sentry/core" "5.30.0" @@ -1423,7 +1327,7 @@ "@sentry/tracing@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" + resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz" integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw== dependencies: "@sentry/hub" "5.30.0" @@ -1434,12 +1338,12 @@ "@sentry/types@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" + resolved "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz" integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== "@sentry/utils@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" + resolved "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz" integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== dependencies: "@sentry/types" "5.30.0" @@ -1447,40 +1351,40 @@ "@sindresorhus/is@^5.2.0": version "5.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz" integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== "@sinonjs/commons@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz" integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== dependencies: type-detect "4.0.8" "@sinonjs/commons@^3.0.0", "@sinonjs/commons@^3.0.1": version "3.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz" integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: type-detect "4.0.8" "@sinonjs/fake-timers@11.2.2", "@sinonjs/fake-timers@^11.2.2": version "11.2.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz#50063cc3574f4a27bd8453180a04171c85cc9699" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz" integrity sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw== dependencies: "@sinonjs/commons" "^3.0.0" "@sinonjs/fake-timers@^13.0.1": version "13.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-13.0.2.tgz#3ffe88abb062067a580fdfba706ad00435a0f2a6" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.2.tgz" integrity sha512-4Bb+oqXZTSTZ1q27Izly9lv8B9dlV61CROxPiVtywwzv5SnytJqhvYe6FclHYuXml4cd1VHPo1zd5PmTeJozvA== dependencies: "@sinonjs/commons" "^3.0.1" "@sinonjs/samsam@^8.0.0": version "8.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.0.tgz#0d488c91efb3fa1442e26abea81759dfc8b5ac60" + resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz" integrity sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew== dependencies: "@sinonjs/commons" "^2.0.0" @@ -1489,29 +1393,29 @@ "@sinonjs/text-encoding@^0.7.2": version "0.7.2" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" + resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz" integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== "@sinonjs/text-encoding@^0.7.3": version "0.7.3" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz#282046f03e886e352b2d5f5da5eb755e01457f3f" + resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz" integrity sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA== "@solidity-parser/parser@^0.14.0": version "0.14.5" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz" integrity sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg== dependencies: antlr4ts "^0.5.0-alpha.4" "@solidity-parser/parser@^0.17.0": version "0.17.0" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.17.0.tgz#52a2fcc97ff609f72011014e4c5b485ec52243ef" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.17.0.tgz" integrity sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw== "@solidity-parser/parser@^0.18.0": version "0.18.0" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.18.0.tgz#8e77a02a09ecce957255a2f48c9a7178ec191908" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz" integrity sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA== "@solidity-parser/parser@^0.20.0": @@ -1521,28 +1425,28 @@ "@szmarczak/http-timer@^5.0.1": version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== dependencies: defer-to-connect "^2.0.1" "@trufflesuite/bigint-buffer@1.1.10": version "1.1.10" - resolved "https://registry.yarnpkg.com/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz#a1d9ca22d3cad1a138b78baaf15543637a3e1692" + resolved "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz" integrity sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw== dependencies: node-gyp-build "4.4.0" "@trufflesuite/bigint-buffer@1.1.9": version "1.1.9" - resolved "https://registry.yarnpkg.com/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz#e2604d76e1e4747b74376d68f1312f9944d0d75d" + resolved "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz" integrity sha512-bdM5cEGCOhDSwminryHJbRmXc1x7dPKg6Pqns3qyTwFlxsqUgxE29lsERS3PlIW1HTjoIGMUqsk1zQQwST1Yxw== dependencies: node-gyp-build "4.3.0" "@ts-morph/common@~0.20.0": version "0.20.0" - resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.20.0.tgz#3f161996b085ba4519731e4d24c35f6cba5b80af" + resolved "https://registry.npmjs.org/@ts-morph/common/-/common-0.20.0.tgz" integrity sha512-7uKjByfbPpwuzkstL3L5MQyuXPSKdoNG93Fmi2JoDcTf3pEP731JdRFAduRVkOs8oqxPsXKA+ScrWkdQ8t/I+Q== dependencies: fast-glob "^3.2.12" @@ -1552,27 +1456,27 @@ "@tsconfig/node10@^1.0.7": version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz" integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== "@tsconfig/node12@^1.0.7": version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== "@typechain/ethers-v5@^10.0.0": version "10.2.1" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz#50241e6957683281ecfa03fb5a6724d8a3ce2391" + resolved "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz" integrity sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A== dependencies: lodash "^4.17.15" @@ -1580,71 +1484,71 @@ "@typechain/ethers-v5@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-2.0.0.tgz#cd3ca1590240d587ca301f4c029b67bfccd08810" + resolved "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-2.0.0.tgz" integrity sha512-0xdCkyGOzdqh4h5JSf+zoWx85IusEjDcPIwNEHP8mrWSnCae4rvrqB+/gtpdNfX7zjlFlZiMeePn2r63EI3Lrw== dependencies: ethers "^5.0.2" "@types/abstract-leveldown@*": version "7.2.5" - resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-7.2.5.tgz#db2cf364c159fb1f12be6cd3549f56387eaf8d73" + resolved "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.5.tgz" integrity sha512-/2B0nQF4UdupuxeKTJA2+Rj1D+uDemo6P4kMwKCpbfpnzeVaWSELTsAw4Lxn3VJD6APtRrZOCuYo+4nHUQfTfg== "@types/argparse@^1.0.36": version "1.0.38" - resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" + resolved "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz" integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== "@types/bn.js@*", "@types/bn.js@^5.1.0": version "5.1.5" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz" integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== dependencies: "@types/node" "*" "@types/bn.js@^4.11.3": version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== dependencies: "@types/node" "*" "@types/chai-as-promised@^7.1.3", "@types/chai-as-promised@^7.1.4": version "7.1.8" - resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz#f2b3d82d53c59626b5d6bbc087667ccb4b677fe9" + resolved "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz" integrity sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw== dependencies: "@types/chai" "*" "@types/chai@*", "@types/chai@^4.2.21": version "4.3.14" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.14.tgz#ae3055ea2be43c91c9fd700a36d67820026d96e6" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.14.tgz" integrity sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w== "@types/concat-stream@^1.6.0": version "1.6.1" - resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" + resolved "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz" integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== dependencies: "@types/node" "*" "@types/elliptic@^6.4.18": version "6.4.18" - resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.18.tgz#bc96e26e1ccccbabe8b6f0e409c85898635482e1" + resolved "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.18.tgz" integrity sha512-UseG6H5vjRiNpQvrhy4VF/JXdA3V/Fp5amvveaL+fs28BZ6xIKJBPnUPRlEaZpysD9MbpfaLi8lbl7PGUAkpWw== dependencies: "@types/bn.js" "*" "@types/form-data@0.0.33": version "0.0.33" - resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8" + resolved "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz" integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== dependencies: "@types/node" "*" "@types/glob@^7.1.1": version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" @@ -1652,27 +1556,27 @@ "@types/http-cache-semantics@^4.0.2": version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== "@types/json-schema@^7.0.12": version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/level-errors@*": version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/level-errors/-/level-errors-3.0.2.tgz#f33ec813c50780b547463da9ad8acac89ee457d9" + resolved "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.2.tgz" integrity sha512-gyZHbcQ2X5hNXf/9KS2qGEmgDe9EN2WDM3rJ5Ele467C0nA1sLhtmv1bZiPMDYfAYCfPWft0uQIaTvXbASSTRA== "@types/levelup@^4.3.0": version "4.3.3" - resolved "https://registry.yarnpkg.com/@types/levelup/-/levelup-4.3.3.tgz#4dc2b77db079b1cf855562ad52321aa4241b8ef4" + resolved "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz" integrity sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA== dependencies: "@types/abstract-leveldown" "*" @@ -1681,34 +1585,34 @@ "@types/lodash@^4.14.199": version "4.17.0" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.0.tgz#d774355e41f372d5350a4d0714abb48194a489c3" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz" integrity sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA== "@types/lru-cache@5.1.1", "@types/lru-cache@^5.1.0": version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" + resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== "@types/minimatch@*": version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== "@types/mkdirp@^0.5.2": version "0.5.2" - resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" + resolved "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz" integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg== dependencies: "@types/node" "*" "@types/mocha@^8.2.3": version "8.2.3" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz" integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== "@types/node-fetch@^2.6.1": version "2.6.11" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" + resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz" integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== dependencies: "@types/node" "*" @@ -1716,75 +1620,75 @@ "@types/node@*": version "20.12.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.6.tgz#72d068870518d7da1d97b49db401e2d6a1805294" + resolved "https://registry.npmjs.org/@types/node/-/node-20.12.6.tgz" integrity sha512-3KurE8taB8GCvZBPngVbp0lk5CKi8M9f9k1rsADh0Evdz5SzJ+Q+Hx9uHoFGsLnLnd1xmkDQr2hVhlA0Mn0lKQ== dependencies: undici-types "~5.26.4" "@types/node@11.11.6": version "11.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" + resolved "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== "@types/node@^10.0.3": version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^17.0.34": version "17.0.45" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" + resolved "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz" integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== "@types/node@^8.0.0": version "8.10.66" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" + resolved "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz" integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== "@types/pbkdf2@^3.0.0": version "3.1.2" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.2.tgz#2dc43808e9985a2c69ff02e2d2027bd4fe33e8dc" + resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz" integrity sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew== dependencies: "@types/node" "*" "@types/prettier@^2.1.1": version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/qs@^6.2.31": version "6.9.10" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz" integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== "@types/resolve@^0.0.8": version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" + resolved "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz" integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== dependencies: "@types/node" "*" "@types/secp256k1@^4.0.1": version "4.0.6" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" + resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz" integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ== dependencies: "@types/node" "*" "@types/seedrandom@3.0.1": version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-3.0.1.tgz#1254750a4fec4aff2ebec088ccd0bb02e91fedb4" + resolved "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz" integrity sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw== "@types/semver@^7.5.0": version "7.5.8" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz" integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== "@typescript-eslint/eslint-plugin@^6.7.4": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz" integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== dependencies: "@eslint-community/regexpp" "^4.5.1" @@ -1801,7 +1705,7 @@ "@typescript-eslint/parser@^6.7.4": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz" integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== dependencies: "@typescript-eslint/scope-manager" "6.21.0" @@ -1812,7 +1716,7 @@ "@typescript-eslint/scope-manager@6.21.0": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz" integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== dependencies: "@typescript-eslint/types" "6.21.0" @@ -1820,7 +1724,7 @@ "@typescript-eslint/type-utils@6.21.0": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz" integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== dependencies: "@typescript-eslint/typescript-estree" "6.21.0" @@ -1830,12 +1734,12 @@ "@typescript-eslint/types@6.21.0": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz" integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== "@typescript-eslint/typescript-estree@6.21.0": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz" integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== dependencies: "@typescript-eslint/types" "6.21.0" @@ -1849,7 +1753,7 @@ "@typescript-eslint/utils@6.21.0": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz" integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -1862,7 +1766,7 @@ "@typescript-eslint/visitor-keys@6.21.0": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz" integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== dependencies: "@typescript-eslint/types" "6.21.0" @@ -1870,17 +1774,17 @@ "@ungap/promise-all-settled@1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== "@ungap/structured-clone@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== JSONStream@1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz" integrity sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA== dependencies: jsonparse "^1.2.0" @@ -1888,17 +1792,17 @@ JSONStream@1.3.2: abbrev@1: version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== abbrev@1.0.x: version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== abstract-leveldown@^6.2.1: version "6.3.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz" integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== dependencies: buffer "^5.5.0" @@ -1909,7 +1813,7 @@ abstract-leveldown@^6.2.1: abstract-leveldown@^7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz#08d19d4e26fb5be426f7a57004851b39e1795a2e" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz" integrity sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ== dependencies: buffer "^6.0.3" @@ -1921,7 +1825,7 @@ abstract-leveldown@^7.2.0: abstract-leveldown@~6.2.1: version "6.2.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz" integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== dependencies: buffer "^5.5.0" @@ -1932,39 +1836,39 @@ abstract-leveldown@~6.2.1: acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: version "8.3.2" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz" integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== acorn@^8.4.1, acorn@^8.9.0: version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== adm-zip@^0.4.16: version "0.4.16" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" + resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz" integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== aes-js@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== agent-base@6: version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -1972,7 +1876,7 @@ aggregate-error@^3.0.0: ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.6: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -1982,7 +1886,7 @@ ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.6: ajv@^8.0.1: version "8.13.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.13.0.tgz#a3939eaec9fb80d217ddf0c3376948c023f28c91" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz" integrity sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA== dependencies: fast-deep-equal "^3.1.3" @@ -1992,70 +1896,70 @@ ajv@^8.0.1: amdefine@>=0.0.4: version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== ansi-align@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: string-width "^4.1.0" ansi-colors@4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-colors@^4.1.1: version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-escapes@^4.3.0: version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-regex@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" antlr4@^4.13.1-patch-1: version "4.13.1-patch-1" - resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.1-patch-1.tgz#946176f863f890964a050c4f18c47fd6f7e57602" + resolved "https://registry.npmjs.org/antlr4/-/antlr4-4.13.1-patch-1.tgz" integrity sha512-OjFLWWLzDMV9rdFhpvroCWR4ooktNg9/nvVYSA5z28wuVpU36QUNuioR1XLnQtcjVlf8npjyz593PxnU/f/Cow== antlr4ts@^0.5.0-alpha.4: version "0.5.0-alpha.4" - resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" + resolved "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz" integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -2063,48 +1967,48 @@ anymatch@~3.1.2: arg@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^1.0.10, argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-back@^1.0.3, array-back@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" + resolved "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz" integrity sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw== dependencies: typical "^2.6.0" array-back@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-2.0.0.tgz#6877471d51ecc9c9bfa6136fb6c7d5fe69748022" + resolved "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz" integrity sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw== dependencies: typical "^2.6.1" array-back@^3.0.1, array-back@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz" integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== array-back@^4.0.1, array-back@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" + resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz" integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== array-buffer-byte-length@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz" integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: call-bind "^1.0.5" @@ -2112,7 +2016,7 @@ array-buffer-byte-length@^1.0.1: array-includes@^3.1.7: version "3.1.8" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz" integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== dependencies: call-bind "^1.0.7" @@ -2124,17 +2028,17 @@ array-includes@^3.1.7: array-union@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array.prototype.findlastindex@^1.2.3: version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz" integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== dependencies: call-bind "^1.0.7" @@ -2146,7 +2050,7 @@ array.prototype.findlastindex@^1.2.3: array.prototype.flat@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" @@ -2156,7 +2060,7 @@ array.prototype.flat@^1.3.2: array.prototype.flatmap@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" @@ -2166,7 +2070,7 @@ array.prototype.flatmap@^1.3.2: arraybuffer.prototype.slice@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz" integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: array-buffer-byte-length "^1.0.1" @@ -2180,87 +2084,87 @@ arraybuffer.prototype.slice@^1.0.3: asap@~2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== asn1@^0.2.6, asn1@~0.2.3: version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== ast-parents@^0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3" + resolved "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz" integrity sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA== astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-eventemitter@^0.2.4: version "0.2.4" - resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" + resolved "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz" integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw== dependencies: async "^2.4.0" async@1.x: version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== async@^2.4.0: version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== available-typed-arrays@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== dependencies: possible-typed-array-names "^1.0.0" aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: version "1.12.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== axios@^0.21.1: version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== dependencies: follow-redirects "^1.14.0" axios@^1.4.0, axios@^1.5.1: version "1.6.8" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66" + resolved "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz" integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== dependencies: follow-redirects "^1.15.6" @@ -2269,7 +2173,7 @@ axios@^1.4.0, axios@^1.5.1: axios@^1.6.2: version "1.7.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz" integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== dependencies: follow-redirects "^1.15.6" @@ -2278,7 +2182,7 @@ axios@^1.6.2: axios@^1.7.2: version "1.7.7" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz" integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== dependencies: follow-redirects "^1.15.6" @@ -2287,7 +2191,7 @@ axios@^1.7.2: babel-runtime@^6.26.0: version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== dependencies: core-js "^2.4.0" @@ -2295,46 +2199,46 @@ babel-runtime@^6.26.0: balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2: version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== dependencies: safe-buffer "^5.0.1" base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" bech32@1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== bignumber.js@^9.0.0, bignumber.js@^9.0.1: version "9.1.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== binary-extensions@^2.0.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== bip39@3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" + resolved "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz" integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== dependencies: "@types/node" "11.11.6" @@ -2344,7 +2248,7 @@ bip39@3.0.4: bl@^1.0.0: version "1.2.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + resolved "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz" integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== dependencies: readable-stream "^2.3.5" @@ -2352,36 +2256,36 @@ bl@^1.0.0: bl@^4.0.3: version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" inherits "^2.0.4" readable-stream "^3.4.0" -blakejs@^1.1.0: +blakejs@^1.1.0, blakejs@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== bn.js@4.11.6: version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz" integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== boxen@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + resolved "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz" integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== dependencies: ansi-align "^3.0.0" @@ -2395,7 +2299,7 @@ boxen@^5.1.2: brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -2403,31 +2307,31 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserify-aes@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -2439,14 +2343,14 @@ browserify-aes@^1.2.0: bs58@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== dependencies: base-x "^3.0.2" bs58check@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== dependencies: bs58 "^4.0.0" @@ -2455,12 +2359,12 @@ bs58check@^2.1.2: buffer-alloc-unsafe@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== buffer-alloc@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== dependencies: buffer-alloc-unsafe "^1.1.0" @@ -2468,39 +2372,39 @@ buffer-alloc@^1.2.0: buffer-equal-constant-time@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== buffer-fill@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-reverse@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-reverse/-/buffer-reverse-1.0.1.tgz#49283c8efa6f901bc01fa3304d06027971ae2f60" + resolved "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz" integrity sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg== buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== buffer-xor@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-2.0.2.tgz#34f7c64f04c777a1f8aac5e661273bb9dd320289" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz" integrity sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ== dependencies: safe-buffer "^5.1.1" buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" @@ -2508,7 +2412,7 @@ buffer@^5.5.0, buffer@^5.6.0: buffer@^6.0.3: version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: base64-js "^1.3.1" @@ -2516,29 +2420,29 @@ buffer@^6.0.3: bufferutil@4.0.5: version "4.0.5" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028" + resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz" integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A== dependencies: node-gyp-build "^4.3.0" buildcheck@~0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/buildcheck/-/buildcheck-0.0.6.tgz#89aa6e417cfd1e2196e3f8fe915eb709d2fe4238" + resolved "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz" integrity sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A== bytes@3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacheable-lookup@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz" integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== cacheable-request@^10.2.8: version "10.2.14" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz" integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== dependencies: "@types/http-cache-semantics" "^4.0.2" @@ -2551,7 +2455,7 @@ cacheable-request@^10.2.8: call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: es-define-property "^1.0.0" @@ -2562,41 +2466,41 @@ call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^6.0.0, camelcase@^6.2.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caseless@^0.12.0, caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== catering@^2.0.0, catering@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" + resolved "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== cbor@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" + resolved "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz" integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== dependencies: nofilter "^3.1.0" chai-as-promised@^7.1.1: version "7.1.1" - resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" + resolved "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz" integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== dependencies: check-error "^1.0.2" chai@^4.3.10, chai@^4.3.6, chai@^4.3.7: version "4.4.1" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + resolved "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz" integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== dependencies: assertion-error "^1.1.0" @@ -2609,7 +2513,7 @@ chai@^4.3.10, chai@^4.3.6, chai@^4.3.7: chai@^4.3.4: version "4.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" + resolved "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz" integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== dependencies: assertion-error "^1.1.0" @@ -2622,7 +2526,7 @@ chai@^4.3.4: chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -2630,7 +2534,7 @@ chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -2639,19 +2543,19 @@ chalk@^2.4.1, chalk@^2.4.2: "charenc@>= 0.0.1": version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== check-error@^1.0.2, check-error@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz" integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== dependencies: get-func-name "^2.0.2" chokidar@3.5.3: version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" @@ -2666,7 +2570,7 @@ chokidar@3.5.3: chokidar@^3.4.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" @@ -2681,17 +2585,17 @@ chokidar@^3.4.0: chownr@^1.0.1, chownr@^1.1.1: version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" @@ -2699,17 +2603,17 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== cli-table3@^0.5.0: version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz" integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== dependencies: object-assign "^4.1.0" @@ -2719,7 +2623,7 @@ cli-table3@^0.5.0: cli-table3@^0.6.0: version "0.6.4" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.4.tgz#d1c536b8a3f2e7bec58f67ac9e5769b1b30088b0" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz" integrity sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw== dependencies: string-width "^4.2.0" @@ -2728,7 +2632,7 @@ cli-table3@^0.6.0: cliui@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -2737,60 +2641,60 @@ cliui@^7.0.2: code-block-writer@^12.0.0: version "12.0.0" - resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-12.0.0.tgz#4dd58946eb4234105aff7f0035977b2afdc2a770" + resolved "https://registry.npmjs.org/code-block-writer/-/code-block-writer-12.0.0.tgz" integrity sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w== collections@^5.1.12: version "5.1.13" - resolved "https://registry.yarnpkg.com/collections/-/collections-5.1.13.tgz#eee204a93b67473c8e74e00e934a997cc2817585" + resolved "https://registry.npmjs.org/collections/-/collections-5.1.13.tgz" integrity sha512-SCb6Qd+d3Z02corWQ7/mqXiXeeTdHvkP6TeFSYfGYdCFp1WrjSNZ3j6y8Y3T/7osGEe0iOcU2g1d346l99m4Lg== dependencies: weak-map "~1.0.x" color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colors@1.4.0, colors@^1.1.2: version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" command-exists@^1.2.8: version "1.2.9" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== command-line-args@^4.0.7: version "4.0.7" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" + resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz" integrity sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA== dependencies: array-back "^2.0.0" @@ -2799,7 +2703,7 @@ command-line-args@^4.0.7: command-line-args@^5.1.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" + resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz" integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== dependencies: array-back "^3.1.0" @@ -2809,7 +2713,7 @@ command-line-args@^5.1.1: command-line-usage@^6.1.0: version "6.1.3" - resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" + resolved "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz" integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== dependencies: array-back "^4.0.2" @@ -2819,42 +2723,42 @@ command-line-usage@^6.1.0: commander@3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== commander@^10.0.0: version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== commander@^6.0.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== commander@^8.1.0, commander@^8.3.0: version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== commander@^9.4.1: version "9.5.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + resolved "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz" integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== commander@~9.4.1: version "9.4.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" + resolved "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz" integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.6.0, concat-stream@^1.6.2, concat-stream@~1.6.2: version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -2864,7 +2768,7 @@ concat-stream@^1.6.0, concat-stream@^1.6.2, concat-stream@~1.6.2: config-chain@^1.1.11: version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" @@ -2872,32 +2776,32 @@ config-chain@^1.1.11: cookie@^0.4.1: version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== core-js-pure@^3.0.1: version "3.36.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.36.1.tgz#1461c89e76116528b54eba20a0aff30164087a94" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.1.tgz" integrity sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA== core-js@^2.4.0: version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-util-is@1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig@^8.0.0: version "8.3.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: import-fresh "^3.3.0" @@ -2907,7 +2811,7 @@ cosmiconfig@^8.0.0: cpu-features@~0.0.9: version "0.0.9" - resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.9.tgz#5226b92f0f1c63122b0a3eb84cb8335a4de499fc" + resolved "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.9.tgz" integrity sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ== dependencies: buildcheck "~0.0.6" @@ -2915,12 +2819,12 @@ cpu-features@~0.0.9: crc-32@^1.2.0: version "1.2.2" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -2931,7 +2835,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -2943,12 +2847,12 @@ create-hmac@^1.1.4, create-hmac@^1.1.7: create-require@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== cross-spawn@^7.0.2: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -2957,24 +2861,24 @@ cross-spawn@^7.0.2: "crypt@>= 0.0.1": version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== crypto-js@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" + resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz" integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" data-view-buffer@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz" integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== dependencies: call-bind "^1.0.6" @@ -2983,7 +2887,7 @@ data-view-buffer@^1.0.1: data-view-byte-length@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz" integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== dependencies: call-bind "^1.0.7" @@ -2992,7 +2896,7 @@ data-view-byte-length@^1.0.1: data-view-byte-offset@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz" integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== dependencies: call-bind "^1.0.6" @@ -3001,81 +2905,81 @@ data-view-byte-offset@^1.0.0: death@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" + resolved "https://registry.npmjs.org/death/-/death-1.1.0.tgz" integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w== debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" debug@4.3.3: version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== dependencies: ms "2.1.2" debug@^2.2.0: version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" debug@^4.3.5: version "4.3.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: ms "^2.1.3" decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: mimic-response "^3.1.0" deep-eql@^4.0.1, deep-eql@^4.1.3: version "4.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== defer-to-connect@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== deferred-leveldown@~5.3.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" + resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz" integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== dependencies: abstract-leveldown "~6.2.1" @@ -3083,7 +2987,7 @@ deferred-leveldown@~5.3.0: define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: es-define-property "^1.0.0" @@ -3092,7 +2996,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: define-data-property "^1.0.1" @@ -3101,46 +3005,46 @@ define-properties@^1.2.0, define-properties@^1.2.1: delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== depd@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== diff@5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== diff@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== diff@^5.1.0, diff@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + resolved "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz" integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== difflib@^0.2.4: version "0.2.4" - resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e" + resolved "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz" integrity sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w== dependencies: heap ">= 0.2.0" dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" docker-modem@^1.0.8: version "1.0.9" - resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-1.0.9.tgz#a1f13e50e6afb6cf3431b2d5e7aac589db6aaba8" + resolved "https://registry.npmjs.org/docker-modem/-/docker-modem-1.0.9.tgz" integrity sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw== dependencies: JSONStream "1.3.2" @@ -3150,7 +3054,7 @@ docker-modem@^1.0.8: docker-modem@^3.0.0: version "3.0.8" - resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-3.0.8.tgz#ef62c8bdff6e8a7d12f0160988c295ea8705e77a" + resolved "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.8.tgz" integrity sha512-f0ReSURdM3pcKPNS30mxOHSbaFLcknGmQjwSfmbcdOw1XWKXVhukM3NJHhr7NpY9BIyyWQb0EBo3KQvvuU5egQ== dependencies: debug "^4.1.1" @@ -3160,7 +3064,7 @@ docker-modem@^3.0.0: docker-modem@^5.0.3: version "5.0.3" - resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-5.0.3.tgz#50c06f11285289f58112b5c4c4d89824541c41d0" + resolved "https://registry.npmjs.org/docker-modem/-/docker-modem-5.0.3.tgz" integrity sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg== dependencies: debug "^4.1.1" @@ -3170,7 +3074,7 @@ docker-modem@^5.0.3: dockerode@^2.5.8: version "2.5.8" - resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-2.5.8.tgz#1b661e36e1e4f860e25f56e0deabe9f87f1d0acc" + resolved "https://registry.npmjs.org/dockerode/-/dockerode-2.5.8.tgz" integrity sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw== dependencies: concat-stream "~1.6.2" @@ -3179,7 +3083,7 @@ dockerode@^2.5.8: dockerode@^3.3.4: version "3.3.5" - resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-3.3.5.tgz#7ae3f40f2bec53ae5e9a741ce655fff459745629" + resolved "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz" integrity sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA== dependencies: "@balena/dockerignore" "^1.0.2" @@ -3188,7 +3092,7 @@ dockerode@^3.3.4: dockerode@^4.0.0, dockerode@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-4.0.2.tgz#dedc8529a1db3ac46d186f5912389899bc309f7d" + resolved "https://registry.npmjs.org/dockerode/-/dockerode-4.0.2.tgz" integrity sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w== dependencies: "@balena/dockerignore" "^1.0.2" @@ -3197,26 +3101,26 @@ dockerode@^4.0.0, dockerode@^4.0.2: doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" dotenv@^16.0.3: version "16.4.5" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz" integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" @@ -3224,14 +3128,14 @@ ecc-jsbn@~0.1.1: ecdsa-sig-formatter@1.0.11: version "1.0.11" - resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== dependencies: safe-buffer "^5.0.1" elliptic@6.5.4: version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: bn.js "^4.11.9" @@ -3244,7 +3148,7 @@ elliptic@6.5.4: elliptic@^6.5.2, elliptic@^6.5.4: version "6.5.5" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.5.tgz#c715e09f78b6923977610d4c2346d6ce22e6dded" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz" integrity sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw== dependencies: bn.js "^4.11.9" @@ -3257,17 +3161,17 @@ elliptic@^6.5.2, elliptic@^6.5.4: emittery@0.10.0: version "0.10.0" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.0.tgz#bb373c660a9d421bb44706ec4967ed50c02a8026" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz" integrity sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encoding-down@^6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" + resolved "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz" integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== dependencies: abstract-leveldown "^6.2.1" @@ -3277,14 +3181,14 @@ encoding-down@^6.3.0: end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" enhanced-resolve@^5.12.0: version "5.16.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz#65ec88778083056cb32487faa9aef82ed0864787" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz" integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== dependencies: graceful-fs "^4.2.4" @@ -3292,7 +3196,7 @@ enhanced-resolve@^5.12.0: enquirer@^2.3.0: version "2.4.1" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== dependencies: ansi-colors "^4.1.1" @@ -3300,31 +3204,31 @@ enquirer@^2.3.0: entities@~3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + resolved "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz" integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== env-paths@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== errno@~0.1.1: version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: version "1.23.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz" integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== dependencies: array-buffer-byte-length "^1.0.1" @@ -3376,26 +3280,26 @@ es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23 es-define-property@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== dependencies: get-intrinsic "^1.2.4" es-errors@^1.2.1, es-errors@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-object-atoms@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz" integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== dependencies: es-errors "^1.3.0" es-set-tostringtag@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz" integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== dependencies: get-intrinsic "^1.2.4" @@ -3404,14 +3308,14 @@ es-set-tostringtag@^2.0.3: es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz" integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== dependencies: hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -3420,22 +3324,22 @@ es-to-primitive@^1.2.1: escalade@^3.1.1: version "3.1.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escodegen@1.8.x: version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz" integrity sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A== dependencies: esprima "^2.7.1" @@ -3447,7 +3351,7 @@ escodegen@1.8.x: eslint-import-resolver-node@^0.3.9: version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" @@ -3456,7 +3360,7 @@ eslint-import-resolver-node@^0.3.9: eslint-import-resolver-typescript@^3.6.1: version "3.6.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" + resolved "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz" integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== dependencies: debug "^4.3.4" @@ -3469,14 +3373,14 @@ eslint-import-resolver-typescript@^3.6.1: eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: version "2.8.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz" integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== dependencies: debug "^3.2.7" eslint-plugin-import@^2.29.0: version "2.29.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz" integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: array-includes "^3.1.7" @@ -3499,7 +3403,7 @@ eslint-plugin-import@^2.29.0: eslint-plugin-prettier@^5.0.1: version "5.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz" integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== dependencies: prettier-linter-helpers "^1.0.0" @@ -3507,7 +3411,7 @@ eslint-plugin-prettier@^5.0.1: eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -3515,12 +3419,12 @@ eslint-scope@^7.2.2: eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.51.0: version "8.57.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -3564,7 +3468,7 @@ eslint@^8.51.0: espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" @@ -3573,46 +3477,46 @@ espree@^9.6.0, espree@^9.6.1: esprima@2.7.x, esprima@^2.7.1: version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + resolved "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz" integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== esprima@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.2: version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^1.9.1: version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz" integrity sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA== estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== eth-gas-reporter@^0.2.25: version "0.2.27" - resolved "https://registry.yarnpkg.com/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz#928de8548a674ed64c7ba0bf5795e63079150d4e" + resolved "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz" integrity sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw== dependencies: "@solidity-parser/parser" "^0.14.0" @@ -3631,14 +3535,14 @@ eth-gas-reporter@^0.2.25: ethereum-bloom-filters@^1.0.6: version "1.1.0" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.1.0.tgz#b3fc1eb789509ee30db0bf99a2988ccacb8d0397" + resolved "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.1.0.tgz" integrity sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw== dependencies: "@noble/hashes" "^1.4.0" ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== dependencies: "@types/pbkdf2" "^3.0.0" @@ -3659,7 +3563,7 @@ ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: ethereum-cryptography@^1.0.3: version "1.2.0" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz#5ccfa183e85fdaf9f9b299a79430c044268c9b3a" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz" integrity sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw== dependencies: "@noble/hashes" "1.2.0" @@ -3669,7 +3573,7 @@ ethereum-cryptography@^1.0.3: ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: version "2.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz#1352270ed3b339fe25af5ceeadcf1b9c8e30768a" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz" integrity sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA== dependencies: "@noble/curves" "1.3.0" @@ -3679,7 +3583,7 @@ ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: ethereum-waffle@^4.0.10: version "4.0.10" - resolved "https://registry.yarnpkg.com/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz#f1ef1564c0155236f1a66c6eae362a5d67c9f64c" + resolved "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz" integrity sha512-iw9z1otq7qNkGDNcMoeNeLIATF9yKl1M8AIeu42ElfNBplq0e+5PeasQmm8ybY/elkZ1XyRO0JBQxQdVRb8bqQ== dependencies: "@ethereum-waffle/chai" "4.0.10" @@ -3691,7 +3595,7 @@ ethereum-waffle@^4.0.10: ethereumjs-abi@0.6.8, ethereumjs-abi@^0.6.8: version "0.6.8" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" + resolved "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz" integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== dependencies: bn.js "^4.11.8" @@ -3699,7 +3603,7 @@ ethereumjs-abi@0.6.8, ethereumjs-abi@^0.6.8: ethereumjs-util@7.1.3: version "7.1.3" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz#b55d7b64dde3e3e45749e4c41288238edec32d23" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz" integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== dependencies: "@types/bn.js" "^5.1.0" @@ -3710,7 +3614,7 @@ ethereumjs-util@7.1.3: ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== dependencies: "@types/bn.js" "^4.11.3" @@ -3723,7 +3627,7 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: version "7.1.5" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== dependencies: "@types/bn.js" "^5.1.0" @@ -3734,7 +3638,7 @@ ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.3, ethereumjs-util@^7.1.4, ethereum ethers@^5.0.2, ethers@^5.7.0, ethers@^5.7.2, ethers@~5.7.0, ethers@~5.7.2: version "5.7.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== dependencies: "@ethersproject/abi" "5.7.0" @@ -3770,7 +3674,7 @@ ethers@^5.0.2, ethers@^5.7.0, ethers@^5.7.2, ethers@~5.7.0, ethers@~5.7.2: ethjs-abi@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/ethjs-abi/-/ethjs-abi-0.2.0.tgz#d3e2c221011520fc499b71682036c14fcc2f5b25" + resolved "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.0.tgz" integrity sha512-ELExSTNV7rm9WA22pA3kxNmaQz1o/peM8X1pZdWypEhuNzFjOR+hIV09Mcfw69Q0kbdd7JNGAFb5dyoL/bnItA== dependencies: bn.js "4.11.6" @@ -3779,7 +3683,7 @@ ethjs-abi@0.2.0: ethjs-abi@0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/ethjs-abi/-/ethjs-abi-0.2.1.tgz#e0a7a93a7e81163a94477bad56ede524ab6de533" + resolved "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz" integrity sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA== dependencies: bn.js "4.11.6" @@ -3788,7 +3692,7 @@ ethjs-abi@0.2.1: ethjs-contract@0.2.3: version "0.2.3" - resolved "https://registry.yarnpkg.com/ethjs-contract/-/ethjs-contract-0.2.3.tgz#f113ced8ed1c9c635b0b7ec71901340b64e8cded" + resolved "https://registry.npmjs.org/ethjs-contract/-/ethjs-contract-0.2.3.tgz" integrity sha512-fKsHm57wxwHrZhVlD8AHU2lC2G3c1fmvoEz15BpqIkuGWiTbjuvrQo2Avc+3EQpSsTFWNdyxC0h1WKRcn5kkyQ== dependencies: babel-runtime "^6.26.0" @@ -3799,12 +3703,12 @@ ethjs-contract@0.2.3: ethjs-filter@0.1.8: version "0.1.8" - resolved "https://registry.yarnpkg.com/ethjs-filter/-/ethjs-filter-0.1.8.tgz#2b02726b820ed4dd3860614d185c0c0f7ed1747f" + resolved "https://registry.npmjs.org/ethjs-filter/-/ethjs-filter-0.1.8.tgz" integrity sha512-qTDPskDL2UadHwjvM8A+WG9HwM4/FoSY3p3rMJORkHltYcAuiQZd2otzOYKcL5w2Q3sbAkW/E3yt/FPFL/AVXA== ethjs-format@0.2.7: version "0.2.7" - resolved "https://registry.yarnpkg.com/ethjs-format/-/ethjs-format-0.2.7.tgz#20c92f31c259a381588d069830d838b489774b86" + resolved "https://registry.npmjs.org/ethjs-format/-/ethjs-format-0.2.7.tgz" integrity sha512-uNYAi+r3/mvR3xYu2AfSXx5teP4ovy9z2FrRsblU+h2logsaIKZPi9V3bn3V7wuRcnG0HZ3QydgZuVaRo06C4Q== dependencies: bn.js "4.11.6" @@ -3816,14 +3720,14 @@ ethjs-format@0.2.7: ethjs-provider-http@0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-provider-http/-/ethjs-provider-http-0.1.6.tgz#1ec5d9b4be257ef1d56a500b22a741985e889420" + resolved "https://registry.npmjs.org/ethjs-provider-http/-/ethjs-provider-http-0.1.6.tgz" integrity sha512-y054N5xyyx43KTQjgdkAEj2uEa/flwpENU5ldx/rmA0Q2yy0vyB2lsOIn/7V0uADMc4iRSHZfnFc9b9YS5Qkdw== dependencies: xhr2 "0.1.3" ethjs-query@0.3.8: version "0.3.8" - resolved "https://registry.yarnpkg.com/ethjs-query/-/ethjs-query-0.3.8.tgz#aa5af02887bdd5f3c78b3256d0f22ffd5d357490" + resolved "https://registry.npmjs.org/ethjs-query/-/ethjs-query-0.3.8.tgz" integrity sha512-/J5JydqrOzU8O7VBOwZKUWXxHDGr46VqNjBCJgBVNNda+tv7Xc8Y2uJc6aMHHVbeN3YOQ7YRElgIc0q1CI02lQ== dependencies: babel-runtime "^6.26.0" @@ -3833,19 +3737,19 @@ ethjs-query@0.3.8: ethjs-rpc@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/ethjs-rpc/-/ethjs-rpc-0.2.0.tgz#3d0011e32cfff156ed6147818c6fb8f801701b4c" + resolved "https://registry.npmjs.org/ethjs-rpc/-/ethjs-rpc-0.2.0.tgz" integrity sha512-RINulkNZTKnj4R/cjYYtYMnFFaBcVALzbtEJEONrrka8IeoarNB9Jbzn+2rT00Cv8y/CxAI+GgY1d0/i2iQeOg== dependencies: promise-to-callback "^1.0.0" ethjs-schema@0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/ethjs-schema/-/ethjs-schema-0.2.1.tgz#47e138920421453617069034684642e26bb310f4" + resolved "https://registry.npmjs.org/ethjs-schema/-/ethjs-schema-0.2.1.tgz" integrity sha512-DXd8lwNrhT9sjsh/Vd2Z+4pfyGxhc0POVnLBUfwk5udtdoBzADyq+sK39dcb48+ZU+2VgtwHxtGWnLnCfmfW5g== ethjs-unit@0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + resolved "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz" integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== dependencies: bn.js "4.11.6" @@ -3853,7 +3757,7 @@ ethjs-unit@0.1.6: ethjs-util@0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.3.tgz#dfd5ea4a400dc5e421a889caf47e081ada78bb55" + resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.3.tgz" integrity sha512-QqpX2dsEG2geSMG9dTMJVhfP1kGRdGMNjiHPiTjkju+X5cB0PQIwUzRr5k21pFkgF5zuLccqe83p7Gh5fFM5tQ== dependencies: is-hex-prefixed "1.0.0" @@ -3861,7 +3765,7 @@ ethjs-util@0.1.3: ethjs-util@0.1.6, ethjs-util@^0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz" integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== dependencies: is-hex-prefixed "1.0.0" @@ -3869,7 +3773,7 @@ ethjs-util@0.1.6, ethjs-util@^0.1.6: ethjs@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/ethjs/-/ethjs-0.4.0.tgz#53e6312b6fe050620bd6c5813cb683191cfd6e4a" + resolved "https://registry.npmjs.org/ethjs/-/ethjs-0.4.0.tgz" integrity sha512-UnQeRMpQ+JETN2FviexEskUwByid+eO8rybjPnk2DNUzjUn0VKNrUbiCAud7Es6otDFwjUeOS58vMZwkZxIIog== dependencies: bn.js "4.11.6" @@ -3885,7 +3789,7 @@ ethjs@^0.4.0: evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" @@ -3893,32 +3797,32 @@ evp_bytestokey@^1.0.3: extend@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2, fast-diff@^1.2.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-glob@^3.0.3, fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2: version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -3929,31 +3833,31 @@ fast-glob@^3.0.3, fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.1, fast-gl fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" fill-keys@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/fill-keys/-/fill-keys-1.0.2.tgz#9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20" + resolved "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz" integrity sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA== dependencies: is-object "~1.0.1" @@ -3961,14 +3865,14 @@ fill-keys@^1.0.2: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-replace@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-1.0.3.tgz#b88e7364d2d9c959559f388c66670d6130441fa0" + resolved "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz" integrity sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA== dependencies: array-back "^1.0.4" @@ -3976,14 +3880,14 @@ find-replace@^1.0.3: find-replace@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz" integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== dependencies: array-back "^3.0.1" find-up@5.0.0, find-up@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -3991,14 +3895,14 @@ find-up@5.0.0, find-up@^5.0.0: find-up@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== dependencies: locate-path "^2.0.0" flat-cache@^3.0.4: version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: flatted "^3.2.9" @@ -4007,39 +3911,39 @@ flat-cache@^3.0.4: flat@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.2.9: version "3.3.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== follow-redirects@^1.12.1, follow-redirects@^1.14.0, follow-redirects@^1.15.6: version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== for-each@^0.3.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== form-data-encoder@^2.1.2: version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz" integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== form-data@^2.2.0: version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz" integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== dependencies: asynckit "^0.4.0" @@ -4048,7 +3952,7 @@ form-data@^2.2.0: form-data@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" @@ -4057,7 +3961,7 @@ form-data@^4.0.0: form-data@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" @@ -4066,22 +3970,22 @@ form-data@~2.3.2: fp-ts@1.19.3: version "1.19.3" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" + resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz" integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== fp-ts@^1.0.0: version "1.19.5" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" + resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.5.tgz" integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== fs-constants@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-extra@^0.30.0: version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz" integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== dependencies: graceful-fs "^4.1.2" @@ -4092,7 +3996,7 @@ fs-extra@^0.30.0: fs-extra@^11.1.1, fs-extra@^11.2.0: version "11.2.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== dependencies: graceful-fs "^4.2.0" @@ -4101,7 +4005,7 @@ fs-extra@^11.1.1, fs-extra@^11.2.0: fs-extra@^7.0.0, fs-extra@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: graceful-fs "^4.1.2" @@ -4110,7 +4014,7 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" @@ -4119,32 +4023,32 @@ fs-extra@^8.1.0: fs-readdir-recursive@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fs@^0.0.1-security: version "0.0.1-security" - resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.1-security.tgz#8a7bd37186b6dddf3813f23858b57ecaaf5e41d4" + resolved "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz" integrity sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w== fsevents@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== function.prototype.name@^1.1.6: version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" @@ -4154,17 +4058,17 @@ function.prototype.name@^1.1.6: functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== ganache@7.4.3: version "7.4.3" - resolved "https://registry.yarnpkg.com/ganache/-/ganache-7.4.3.tgz#e995f1250697264efbb34d4241c374a2b0271415" + resolved "https://registry.npmjs.org/ganache/-/ganache-7.4.3.tgz" integrity sha512-RpEDUiCkqbouyE7+NMXG26ynZ+7sGiODU84Kz+FVoXUnQ4qQM4M8wif3Y4qUCt+D/eM1RVeGq0my62FPD6Y1KA== dependencies: "@trufflesuite/bigint-buffer" "1.1.10" @@ -4181,17 +4085,17 @@ ganache@7.4.3: get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.1, get-func-name@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: es-errors "^1.3.0" @@ -4202,22 +4106,22 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@ get-port@^3.1.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + resolved "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== get-stdin@~9.0.0: version "9.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz" integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== get-stream@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz" integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== dependencies: call-bind "^1.0.5" @@ -4226,21 +4130,21 @@ get-symbol-description@^1.0.2: get-tsconfig@^4.5.0: version "4.7.3" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.3.tgz#0498163d98f7b58484dd4906999c0c9d5f103f83" + resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz" integrity sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg== dependencies: resolve-pkg-maps "^1.0.0" getpass@^0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" ghost-testrpc@^0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz#c4de9557b1d1ae7b2d20bbe474a91378ca90ce92" + resolved "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz" integrity sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ== dependencies: chalk "^2.4.2" @@ -4248,21 +4152,21 @@ ghost-testrpc@^0.0.2: glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob@7.1.7: version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" @@ -4274,7 +4178,7 @@ glob@7.1.7: glob@7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" @@ -4286,7 +4190,7 @@ glob@7.2.0: glob@8.1.0, glob@^8.0.3: version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" @@ -4297,7 +4201,7 @@ glob@8.1.0, glob@^8.0.3: glob@^5.0.15: version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + resolved "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== dependencies: inflight "^1.0.4" @@ -4308,7 +4212,7 @@ glob@^5.0.15: glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -4320,7 +4224,7 @@ glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: glob@~8.0.3: version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + resolved "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz" integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== dependencies: fs.realpath "^1.0.0" @@ -4331,14 +4235,14 @@ glob@~8.0.3: global-modules@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: global-prefix "^3.0.0" global-prefix@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: ini "^1.3.5" @@ -4347,14 +4251,14 @@ global-prefix@^3.0.0: globals@^13.19.0: version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" globalthis@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz" integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== dependencies: define-properties "^1.2.1" @@ -4362,7 +4266,7 @@ globalthis@^1.0.3: globby@^10.0.1: version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + resolved "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz" integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== dependencies: "@types/glob" "^7.1.1" @@ -4376,7 +4280,7 @@ globby@^10.0.1: globby@^11.1.0: version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -4388,14 +4292,14 @@ globby@^11.1.0: gopd@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" got@^12.1.0: version "12.6.1" - resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + resolved "https://registry.npmjs.org/got/-/got-12.6.1.tgz" integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== dependencies: "@sindresorhus/is" "^5.2.0" @@ -4412,27 +4316,27 @@ got@^12.1.0: graceful-fs@4.2.10: version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== growl@1.10.5: version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== handlebars@^4.0.1, handlebars@^4.7.6: version "4.7.8" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz" integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== dependencies: minimist "^1.2.5" @@ -4444,12 +4348,12 @@ handlebars@^4.0.1, handlebars@^4.7.6: har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" @@ -4457,7 +4361,7 @@ har-validator@~5.1.3: hardhat-contract-sizer@^2.0.2: version "2.10.0" - resolved "https://registry.yarnpkg.com/hardhat-contract-sizer/-/hardhat-contract-sizer-2.10.0.tgz#72646f43bfe50e9a5702c9720c9bc3e77d93a2c9" + resolved "https://registry.npmjs.org/hardhat-contract-sizer/-/hardhat-contract-sizer-2.10.0.tgz" integrity sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA== dependencies: chalk "^4.0.0" @@ -4466,7 +4370,7 @@ hardhat-contract-sizer@^2.0.2: hardhat-gas-reporter@^1.0.9: version "1.0.10" - resolved "https://registry.yarnpkg.com/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz#ebe5bda5334b5def312747580cd923c2b09aef1b" + resolved "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz" integrity sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA== dependencies: array-uniq "1.0.3" @@ -4475,12 +4379,12 @@ hardhat-gas-reporter@^1.0.9: hardhat-typechain@^0.3.3: version "0.3.5" - resolved "https://registry.yarnpkg.com/hardhat-typechain/-/hardhat-typechain-0.3.5.tgz#8e50616a9da348b33bd001168c8fda9c66b7b4af" + resolved "https://registry.npmjs.org/hardhat-typechain/-/hardhat-typechain-0.3.5.tgz" integrity sha512-w9lm8sxqTJACY+V7vijiH+NkPExnmtiQEjsV9JKD1KgMdVk2q8y+RhvU/c4B7+7b1+HylRUCxpOIvFuB3rE4+w== -hardhat@=2.22.2: +hardhat@=2.22.2, hardhat@^2.14.0, hardhat@^2.19.4: version "2.22.2" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.2.tgz#0cadd7ec93bf39bab09f81603e75bc5e92acea3d" + resolved "https://registry.npmjs.org/hardhat/-/hardhat-2.22.2.tgz" integrity sha512-0xZ7MdCZ5sJem4MrvpQWLR3R3zGDoHw5lsR+pBFimqwagimIOn3bWuZv69KA+veXClwI1s/zpqgwPwiFrd4Dxw== dependencies: "@ethersproject/abi" "^5.1.2" @@ -4527,151 +4431,53 @@ hardhat@=2.22.2: uuid "^8.3.2" ws "^7.4.6" -hardhat@^2.14.0: - version "2.22.7" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.7.tgz#3de0ce5074063cf468876c5e62f84c66d2408e8e" - integrity sha512-nrXQAl+qUr75TsCLDo8P41YXLc+5U7qQMMCIrbbmy1/uQaVPncdjDrD5BR0CENvHRj7EBqO+JkofpozXoIfJKg== - dependencies: - "@ethersproject/abi" "^5.1.2" - "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/edr" "^0.5.0" - "@nomicfoundation/ethereumjs-common" "4.0.4" - "@nomicfoundation/ethereumjs-tx" "5.0.4" - "@nomicfoundation/ethereumjs-util" "9.0.4" - "@nomicfoundation/solidity-analyzer" "^0.1.0" - "@sentry/node" "^5.18.1" - "@types/bn.js" "^5.1.0" - "@types/lru-cache" "^5.1.0" - adm-zip "^0.4.16" - aggregate-error "^3.0.0" - ansi-escapes "^4.3.0" - boxen "^5.1.2" - chalk "^2.4.2" - chokidar "^3.4.0" - ci-info "^2.0.0" - debug "^4.1.1" - enquirer "^2.3.0" - env-paths "^2.2.0" - ethereum-cryptography "^1.0.3" - ethereumjs-abi "^0.6.8" - find-up "^2.1.0" - fp-ts "1.19.3" - fs-extra "^7.0.1" - glob "7.2.0" - immutable "^4.0.0-rc.12" - io-ts "1.10.4" - keccak "^3.0.2" - lodash "^4.17.11" - mnemonist "^0.38.0" - mocha "^10.0.0" - p-map "^4.0.0" - raw-body "^2.4.1" - resolve "1.17.0" - semver "^6.3.0" - solc "0.8.26" - source-map-support "^0.5.13" - stacktrace-parser "^0.1.10" - tsort "0.0.1" - undici "^5.14.0" - uuid "^8.3.2" - ws "^7.4.6" - -hardhat@^2.19.4: - version "2.22.5" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.5.tgz#7e1a4311fa9e34a1cfe337784eae06706f6469a5" - integrity sha512-9Zq+HonbXCSy6/a13GY1cgHglQRfh4qkzmj1tpPlhxJDwNVnhxlReV6K7hCWFKlOrV13EQwsdcD0rjcaQKWRZw== - dependencies: - "@ethersproject/abi" "^5.1.2" - "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/edr" "^0.4.0" - "@nomicfoundation/ethereumjs-common" "4.0.4" - "@nomicfoundation/ethereumjs-tx" "5.0.4" - "@nomicfoundation/ethereumjs-util" "9.0.4" - "@nomicfoundation/solidity-analyzer" "^0.1.0" - "@sentry/node" "^5.18.1" - "@types/bn.js" "^5.1.0" - "@types/lru-cache" "^5.1.0" - adm-zip "^0.4.16" - aggregate-error "^3.0.0" - ansi-escapes "^4.3.0" - boxen "^5.1.2" - chalk "^2.4.2" - chokidar "^3.4.0" - ci-info "^2.0.0" - debug "^4.1.1" - enquirer "^2.3.0" - env-paths "^2.2.0" - ethereum-cryptography "^1.0.3" - ethereumjs-abi "^0.6.8" - find-up "^2.1.0" - fp-ts "1.19.3" - fs-extra "^7.0.1" - glob "7.2.0" - immutable "^4.0.0-rc.12" - io-ts "1.10.4" - keccak "^3.0.2" - lodash "^4.17.11" - mnemonist "^0.38.0" - mocha "^10.0.0" - p-map "^4.0.0" - raw-body "^2.4.1" - resolve "1.17.0" - semver "^6.3.0" - solc "0.7.3" - source-map-support "^0.5.13" - stacktrace-parser "^0.1.10" - tsort "0.0.1" - undici "^5.14.0" - uuid "^8.3.2" - ws "^7.4.6" - has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: es-define-property "^1.0.0" has-proto@^1.0.1, has-proto@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: has-symbols "^1.0.3" hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" @@ -4680,7 +4486,7 @@ hash-base@^3.0.0: hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" @@ -4688,24 +4494,24 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" he@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== "heap@>= 0.2.0": version "0.2.7" - resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" + resolved "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz" integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" @@ -4714,12 +4520,12 @@ hmac-drbg@^1.0.1: hosted-git-info@^2.6.0: version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== http-basic@^8.1.1: version "8.1.3" - resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-8.1.3.tgz#a7cabee7526869b9b710136970805b1004261bbf" + resolved "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz" integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== dependencies: caseless "^0.12.0" @@ -4729,12 +4535,12 @@ http-basic@^8.1.1: http-cache-semantics@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-errors@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: depd "2.0.0" @@ -4745,14 +4551,14 @@ http-errors@2.0.0: http-response-object@^3.0.1: version "3.0.2" - resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-3.0.2.tgz#7f435bb210454e4360d074ef1f989d5ea8aa9810" + resolved "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz" integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== dependencies: "@types/node" "^10.0.3" http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" @@ -4761,7 +4567,7 @@ http-signature@~1.2.0: http2-wrapper@^2.1.10: version "2.2.1" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz" integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== dependencies: quick-lru "^5.1.1" @@ -4769,7 +4575,7 @@ http2-wrapper@^2.1.10: https-proxy-agent@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" @@ -4777,44 +4583,44 @@ https-proxy-agent@^5.0.0: iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4: version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== ignore@~5.2.4: version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== immediate@^3.2.3: version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" + resolved "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz" integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== immediate@~3.2.3: version "3.2.3" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" + resolved "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz" integrity sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg== immutable@^4.0.0-rc.12: version "4.3.5" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz" integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -4822,17 +4628,17 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -4840,27 +4646,27 @@ inflight@^1.0.4: inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== ini@~3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" + resolved "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz" integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== internal-slot@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz" integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: es-errors "^1.3.0" @@ -4869,19 +4675,19 @@ internal-slot@^1.0.7: interpret@^1.0.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== io-ts@1.10.4: version "1.10.4" - resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" + resolved "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz" integrity sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g== dependencies: fp-ts "^1.0.0" is-array-buffer@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz" integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" @@ -4889,26 +4695,26 @@ is-array-buffer@^3.0.4: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -4916,102 +4722,102 @@ is-boolean-object@^1.1.0: is-buffer@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.13.1: version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" is-data-view@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz" integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== dependencies: is-typed-array "^1.1.13" is-date-object@^1.0.1: version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fn@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" + resolved "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz" integrity sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg== is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-hex-prefixed@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== is-negative-zero@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz" integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-object@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz" integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -5019,97 +4825,97 @@ is-regex@^1.1.4: is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz" integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== dependencies: call-bind "^1.0.7" is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-typed-array@^1.1.13: version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz" integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: which-typed-array "^1.1.14" is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-url@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz" integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" isarray@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== isarray@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isstream@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== js-sha3@0.5.5: version "0.5.5" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.5.tgz#baf0c0e8c54ad5903447df96ade7a4a1bca79a4a" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz" integrity sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA== js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@3.x: version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" @@ -5117,87 +4923,87 @@ js-yaml@3.x: js-yaml@4.1.0, js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== json-bigint@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" + resolved "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== dependencies: bignumber.js "^9.0.0" json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-schema@0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" jsonc-parser@~3.2.0: version "3.2.1" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a" + resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz" integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== jsonfile@^2.1.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -5206,17 +5012,17 @@ jsonfile@^6.0.1: jsonparse@^1.2.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== jsonschema@^1.2.4: version "1.4.1" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" + resolved "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz" integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== jsonwebtoken@^8.5.1: version "8.5.1" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz" integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== dependencies: jws "^3.2.2" @@ -5232,7 +5038,7 @@ jsonwebtoken@^8.5.1: jsprim@^1.2.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" @@ -5242,12 +5048,12 @@ jsprim@^1.2.2: just-extend@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-6.2.0.tgz#b816abfb3d67ee860482e7401564672558163947" + resolved "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz" integrity sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw== jwa@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + resolved "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz" integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== dependencies: buffer-equal-constant-time "1.0.1" @@ -5256,7 +5062,7 @@ jwa@^1.4.1: jws@^3.2.2: version "3.2.2" - resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + resolved "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz" integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== dependencies: jwa "^1.4.1" @@ -5264,7 +5070,7 @@ jws@^3.2.2: keccak@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz" integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== dependencies: node-addon-api "^2.0.0" @@ -5272,7 +5078,7 @@ keccak@3.0.1: keccak@3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== dependencies: node-addon-api "^2.0.0" @@ -5281,7 +5087,7 @@ keccak@3.0.2: keccak@^3.0.0, keccak@^3.0.2: version "3.0.4" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz" integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== dependencies: node-addon-api "^2.0.0" @@ -5290,59 +5096,59 @@ keccak@^3.0.0, keccak@^3.0.2: keyv@^4.5.3: version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^1.0.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== optionalDependencies: graceful-fs "^4.1.9" latest-version@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + resolved "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz" integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== dependencies: package-json "^8.1.0" level-codec@^9.0.0: version "9.0.2" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" + resolved "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz" integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== dependencies: buffer "^5.6.0" level-concat-iterator@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz#5235b1f744bc34847ed65a50548aa88d22e881cf" + resolved "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz" integrity sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ== dependencies: catering "^2.1.0" level-concat-iterator@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz#1d1009cf108340252cb38c51f9727311193e6263" + resolved "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz" integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== level-errors@^2.0.0, level-errors@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8" + resolved "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz" integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== dependencies: errno "~0.1.1" level-iterator-stream@~4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" + resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz" integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== dependencies: inherits "^2.0.4" @@ -5351,7 +5157,7 @@ level-iterator-stream@~4.0.0: level-mem@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/level-mem/-/level-mem-5.0.1.tgz#c345126b74f5b8aa376dc77d36813a177ef8251d" + resolved "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz" integrity sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg== dependencies: level-packager "^5.0.3" @@ -5359,7 +5165,7 @@ level-mem@^5.0.1: level-packager@^5.0.3: version "5.1.1" - resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939" + resolved "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz" integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== dependencies: encoding-down "^6.3.0" @@ -5367,19 +5173,19 @@ level-packager@^5.0.3: level-supports@^2.0.1: version "2.1.0" - resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-2.1.0.tgz#9af908d853597ecd592293b2fad124375be79c5f" + resolved "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz" integrity sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA== level-supports@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" + resolved "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz" integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== dependencies: xtend "^4.0.2" level-ws@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-2.0.0.tgz#207a07bcd0164a0ec5d62c304b4615c54436d339" + resolved "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz" integrity sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA== dependencies: inherits "^2.0.3" @@ -5388,7 +5194,7 @@ level-ws@^2.0.0: leveldown@6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-6.1.0.tgz#7ab1297706f70c657d1a72b31b40323aa612b9ee" + resolved "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz" integrity sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w== dependencies: abstract-leveldown "^7.2.0" @@ -5397,7 +5203,7 @@ leveldown@6.1.0: levelup@^4.3.2: version "4.4.0" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" + resolved "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz" integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== dependencies: deferred-leveldown "~5.3.0" @@ -5408,7 +5214,7 @@ levelup@^4.3.2: levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -5416,7 +5222,7 @@ levn@^0.4.1: levn@~0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" @@ -5424,19 +5230,19 @@ levn@~0.3.0: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== linkify-it@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz" integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw== dependencies: uc.micro "^1.0.1" locate-path@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" @@ -5444,84 +5250,84 @@ locate-path@^2.0.0: locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.camelcase@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== lodash.clonedeep@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== lodash.get@^4.4.2: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash.includes@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== lodash.isboolean@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== lodash.isequal@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== lodash.isinteger@^4.0.4: version "4.0.4" - resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + resolved "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz" integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== lodash.isnumber@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + resolved "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz" integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== lodash.isplainobject@^4.0.6: version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.isstring@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.once@^4.0.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== lodash.truncate@^4.4.2: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" @@ -5529,48 +5335,48 @@ log-symbols@4.1.0: loupe@^2.3.6: version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz" integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== dependencies: get-func-name "^2.0.1" lowercase-keys@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" lru_map@^0.3.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" + resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== ltgt@~2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" + resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== make-error@^1.1.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== markdown-it@13.0.1: version "13.0.1" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.1.tgz#c6ecc431cacf1a5da531423fc6a42807814af430" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz" integrity sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q== dependencies: argparse "^2.0.1" @@ -5581,12 +5387,12 @@ markdown-it@13.0.1: markdown-table@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" + resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz" integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== markdownlint-cli@^0.33.0: version "0.33.0" - resolved "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.33.0.tgz#703af1234c32c309ab52fcd0e8bc797a34e2b096" + resolved "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.33.0.tgz" integrity sha512-zMK1oHpjYkhjO+94+ngARiBBrRDEUMzooDHBAHtmEIJ9oYddd9l3chCReY2mPlecwH7gflQp1ApilTo+o0zopQ== dependencies: commander "~9.4.1" @@ -5601,19 +5407,19 @@ markdownlint-cli@^0.33.0: markdownlint@~0.27.0: version "0.27.0" - resolved "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.27.0.tgz#9dabf7710a4999e2835e3c68317f1acd0bc89049" + resolved "https://registry.npmjs.org/markdownlint/-/markdownlint-0.27.0.tgz" integrity sha512-HtfVr/hzJJmE0C198F99JLaeada+646B5SaG2pVoEakLFI6iRGsvMqrnnrflq8hm1zQgwskEgqSnhDW11JBp0w== dependencies: markdown-it "13.0.1" mcl-wasm@^0.7.1: version "0.7.9" - resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" + resolved "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz" integrity sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ== md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -5622,12 +5428,12 @@ md5.js@^1.3.4: mdurl@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== memdown@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-5.1.0.tgz#608e91a9f10f37f5b5fe767667a8674129a833cb" + resolved "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz" integrity sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw== dependencies: abstract-leveldown "~6.2.1" @@ -5639,22 +5445,22 @@ memdown@^5.0.0: memorystream@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== merge-descriptors@~1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz" integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== merkle-patricia-tree@^4.2.2, merkle-patricia-tree@^4.2.4: version "4.2.4" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz#ff988d045e2bf3dfa2239f7fabe2d59618d57413" + resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz" integrity sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w== dependencies: "@types/levelup" "^4.3.0" @@ -5666,7 +5472,7 @@ merkle-patricia-tree@^4.2.2, merkle-patricia-tree@^4.2.4: merkletreejs@^0.3.11: version "0.3.11" - resolved "https://registry.yarnpkg.com/merkletreejs/-/merkletreejs-0.3.11.tgz#e0de05c3ca1fd368de05a12cb8efb954ef6fc04f" + resolved "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.3.11.tgz" integrity sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ== dependencies: bignumber.js "^9.0.1" @@ -5677,12 +5483,12 @@ merkletreejs@^0.3.11: micro-ftch@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" + resolved "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz" integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== micromatch@^4.0.4: version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" @@ -5690,7 +5496,7 @@ micromatch@^4.0.4: miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" @@ -5698,115 +5504,115 @@ miller-rabin@^4.0.0: mime-db@1.52.0: version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12, mime-types@~2.1.19: version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== mimic-response@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz" integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== "minimatch@2 || 3", minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" minimatch@4.2.1: version "4.2.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz" integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== dependencies: brace-expansion "^1.1.7" minimatch@5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== dependencies: brace-expansion "^2.0.1" minimatch@9.0.3: version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== dependencies: brace-expansion "^2.0.1" minimatch@^5.0.1, minimatch@~5.1.2: version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" minimatch@^7.4.3: version "7.4.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz" integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw== dependencies: brace-expansion "^2.0.1" minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mkdirp-classic@^0.5.2: version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== mkdirp@0.5.x, mkdirp@^0.5.1: version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mkdirp@^2.1.6: version "2.1.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz" integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== mnemonist@^0.38.0: version "0.38.5" - resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" + resolved "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz" integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== dependencies: obliterator "^2.0.0" mocha@^10.0.0, mocha@^10.2.0: version "10.4.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261" + resolved "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz" integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== dependencies: ansi-colors "4.1.1" @@ -5832,7 +5638,7 @@ mocha@^10.0.0, mocha@^10.2.0: mocha@^9.0.2: version "9.2.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" + resolved "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz" integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== dependencies: "@ungap/promise-all-settled" "1.1.2" @@ -5862,52 +5668,52 @@ mocha@^9.0.2: module-not-found-error@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/module-not-found-error/-/module-not-found-error-1.0.1.tgz#cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0" + resolved "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz" integrity sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g== ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@2.1.3, ms@^2.1.1, ms@^2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nan@^2.17.0, nan@^2.18.0: version "2.19.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" + resolved "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz" integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== nanoid@3.3.1: version "3.3.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz" integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== napi-macros@~2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" + resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz" integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== nise@^5.1.5: version "5.1.9" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.9.tgz#0cb73b5e4499d738231a473cd89bd8afbb618139" + resolved "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz" integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== dependencies: "@sinonjs/commons" "^3.0.0" @@ -5918,7 +5724,7 @@ nise@^5.1.5: nise@^6.0.0: version "6.1.1" - resolved "https://registry.yarnpkg.com/nise/-/nise-6.1.1.tgz#78ea93cc49be122e44cb7c8fdf597b0e8778b64a" + resolved "https://registry.npmjs.org/nise/-/nise-6.1.1.tgz" integrity sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g== dependencies: "@sinonjs/commons" "^3.0.1" @@ -5929,63 +5735,63 @@ nise@^6.0.0: node-addon-api@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== node-emoji@^1.10.0: version "1.11.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz" integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== dependencies: lodash "^4.17.21" node-fetch@^2.6.0, node-fetch@^2.6.7: version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" node-gyp-build@4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== node-gyp-build@4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz" integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: version "4.8.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz" integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== nofilter@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" + resolved "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz" integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== nopt@3.x: version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== dependencies: abbrev "1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^8.0.0: version "8.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz" integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== number-to-bn@1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + resolved "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz" integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== dependencies: bn.js "4.11.6" @@ -5993,27 +5799,27 @@ number-to-bn@1.7.0: oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-inspect@^1.13.1: version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.5: version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: call-bind "^1.0.5" @@ -6023,7 +5829,7 @@ object.assign@^4.1.5: object.fromentries@^2.0.7: version "2.0.8" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz" integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== dependencies: call-bind "^1.0.7" @@ -6033,7 +5839,7 @@ object.fromentries@^2.0.7: object.groupby@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz" integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== dependencies: call-bind "^1.0.7" @@ -6042,7 +5848,7 @@ object.groupby@^1.0.1: object.values@^1.1.7: version "1.2.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz" integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== dependencies: call-bind "^1.0.7" @@ -6051,19 +5857,19 @@ object.values@^1.1.7: obliterator@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" + resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" optionator@^0.8.1: version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" @@ -6075,7 +5881,7 @@ optionator@^0.8.1: optionator@^0.9.3: version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: deep-is "^0.1.3" @@ -6087,69 +5893,69 @@ optionator@^0.9.3: ordinal@1.0.3, ordinal@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/ordinal/-/ordinal-1.0.3.tgz#1a3c7726a61728112f50944ad7c35c06ae3a0d4d" + resolved "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz" integrity sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ== os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-cancelable@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== p-limit@^1.1.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-limit@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== dependencies: yocto-queue "^1.0.0" p-locate@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-try@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== package-json@^8.1.0: version "8.1.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" + resolved "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz" integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== dependencies: got "^12.1.0" @@ -6159,19 +5965,19 @@ package-json@^8.1.0: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-cache-control@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" + resolved "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz" integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -6181,52 +5987,52 @@ parse-json@^5.2.0: path-browserify@^1.0.0, path-browserify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-to-regexp@^6.2.1: version "6.2.2" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.2.tgz#324377a83e5049cbecadc5554d6a63a9a4866b36" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz" integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw== path-to-regexp@^8.1.0: version "8.2.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.2.0.tgz#73990cc29e57a3ff2a0d914095156df5db79e8b4" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz" integrity sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ== path-type@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== path@^0.12.7: version "0.12.7" - resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" + resolved "https://registry.npmjs.org/path/-/path-0.12.7.tgz" integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== dependencies: process "^0.11.1" @@ -6234,17 +6040,17 @@ path@^0.12.7: pathington@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/pathington/-/pathington-1.1.7.tgz#caf2d2db899a31fea4e81e3657af6acde5171903" + resolved "https://registry.npmjs.org/pathington/-/pathington-1.1.7.tgz" integrity sha512-JxzhUzagDfNIOm4qqwQqP3rWeo7rNNOfIahy4n+3GTEdwXLqw5cJHUR0soSopQtNEv763lzxb6eA2xBllpR8zw== pathval@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== pbkdf2@^3.0.17, pbkdf2@^3.0.9: version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" @@ -6255,61 +6061,61 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.9: performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pluralize@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== possible-typed-array-names@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== preprocess@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/preprocess/-/preprocess-3.2.0.tgz#36b3e2c52331fbc6fabb26d4fd5709304b7e3675" + resolved "https://registry.npmjs.org/preprocess/-/preprocess-3.2.0.tgz" integrity sha512-cO+Rf+Ose/eD+ze8Hxd9p9nS1xT8thYqv8owG/V8+IS/Remd7Z17SvaRK/oJxp08yaM8zb+QTckDKJUul2pk7g== dependencies: xregexp "3.1.0" prettier-linter-helpers@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: fast-diff "^1.1.2" prettier-plugin-solidity@^1.1.3: version "1.3.1" - resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.3.1.tgz#59944d3155b249f7f234dee29f433524b9a4abcf" + resolved "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.3.1.tgz" integrity sha512-MN4OP5I2gHAzHZG1wcuJl0FsLS3c4Cc5494bbg+6oQWBPuEamjwDvmGfFMZ6NFzsh3Efd9UUxeT7ImgjNH4ozA== dependencies: "@solidity-parser/parser" "^0.17.0" @@ -6318,27 +6124,27 @@ prettier-plugin-solidity@^1.1.3: prettier@^2.1.2, prettier@^2.3.1, prettier@^2.8.3: version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== prettier@^3.0.3: version "3.2.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz" integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.1: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== promise-to-callback@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" + resolved "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz" integrity sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA== dependencies: is-fn "^1.0.0" @@ -6346,14 +6152,14 @@ promise-to-callback@^1.0.0: promise@^8.0.0: version "8.3.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== dependencies: asap "~2.0.6" proper-lockfile@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" + resolved "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz" integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== dependencies: graceful-fs "^4.2.4" @@ -6362,17 +6168,17 @@ proper-lockfile@^4.1.2: proto-list@~1.2.1: version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== proxyquire@^2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-2.1.3.tgz#2049a7eefa10a9a953346a18e54aab2b4268df39" + resolved "https://registry.npmjs.org/proxyquire/-/proxyquire-2.1.3.tgz" integrity sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg== dependencies: fill-keys "^1.0.2" @@ -6381,17 +6187,17 @@ proxyquire@^2.1.3: prr@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== psl@^1.1.28: version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== pump@^1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + resolved "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz" integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== dependencies: end-of-stream "^1.1.0" @@ -6399,7 +6205,7 @@ pump@^1.0.0: pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -6407,51 +6213,51 @@ pump@^3.0.0: punycode@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0, punycode@^2.1.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== qs@^6.11.2, qs@^6.4.0: version "6.12.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.0.tgz#edd40c3b823995946a8a0b1f208669c7a200db77" + resolved "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz" integrity sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg== dependencies: side-channel "^1.0.6" qs@~6.5.2: version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== querystring@^0.2.0: version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz" integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== queue-microtask@^1.2.2, queue-microtask@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== quick-lru@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== randombytes@^2.0.1, randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" raw-body@^2.4.1: version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" @@ -6461,7 +6267,7 @@ raw-body@^2.4.1: rc@1.2.8: version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -6471,7 +6277,7 @@ rc@1.2.8: readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5: version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" @@ -6484,7 +6290,7 @@ readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5: readable-stream@^3.1.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -6493,7 +6299,7 @@ readable-stream@^3.1.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable readable-stream@~1.0.26-4: version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== dependencies: core-util-is "~1.0.0" @@ -6503,38 +6309,38 @@ readable-stream@~1.0.26-4: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" rechoir@^0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" recursive-readdir@^2.2.2: version "2.2.3" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz" integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== dependencies: minimatch "^3.0.5" reduce-flatten@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + resolved "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz" integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== regenerator-runtime@^0.11.0: version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regexp.prototype.flags@^1.5.2: version "1.5.2" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz" integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== dependencies: call-bind "^1.0.6" @@ -6544,35 +6350,35 @@ regexp.prototype.flags@^1.5.2: registry-auth-token@^5.0.1: version "5.0.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz" integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== dependencies: "@pnpm/npm-conf" "^2.1.0" registry-url@^6.0.0: version "6.0.1" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + resolved "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz" integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== dependencies: rc "1.2.8" req-cwd@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/req-cwd/-/req-cwd-2.0.0.tgz#d4082b4d44598036640fb73ddea01ed53db49ebc" + resolved "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz" integrity sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ== dependencies: req-from "^2.0.0" req-from@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/req-from/-/req-from-2.0.0.tgz#d74188e47f93796f4aa71df6ee35ae689f3e0e70" + resolved "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz" integrity sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA== dependencies: resolve-from "^3.0.0" request@^2.85.0: version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -6598,49 +6404,49 @@ request@^2.85.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.0, require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== resolve-alpn@^1.2.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-from@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-pkg-maps@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== resolve@1.1.x: version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== resolve@1.17.0: version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" resolve@^1.1.6, resolve@^1.11.1, resolve@^1.22.4, resolve@^1.8.1: version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" @@ -6649,38 +6455,38 @@ resolve@^1.1.6, resolve@^1.11.1, resolve@^1.22.4, resolve@^1.8.1: responselike@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + resolved "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz" integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== dependencies: lowercase-keys "^3.0.0" retry@^0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^2.2.8: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" @@ -6688,21 +6494,21 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: rlp@2.2.6: version "2.2.6" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" + resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz" integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== dependencies: bn.js "^4.11.1" rlp@^2.2.3, rlp@^2.2.4: version "2.2.7" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz" integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== dependencies: bn.js "^5.2.0" run-con@~1.2.11: version "1.2.12" - resolved "https://registry.yarnpkg.com/run-con/-/run-con-1.2.12.tgz#51c319910e45a3bd71ee773564a89d96635c8c64" + resolved "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz" integrity sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg== dependencies: deep-extend "^0.6.0" @@ -6712,19 +6518,19 @@ run-con@~1.2.11: run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" rustbn.js@~0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" + resolved "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== safe-array-concat@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz" integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== dependencies: call-bind "^1.0.7" @@ -6734,17 +6540,17 @@ safe-array-concat@^1.1.2: safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex-test@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz" integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: call-bind "^1.0.6" @@ -6753,12 +6559,12 @@ safe-regex-test@^1.0.3: "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sc-istanbul@^0.4.5: version "0.4.6" - resolved "https://registry.yarnpkg.com/sc-istanbul/-/sc-istanbul-0.4.6.tgz#cf6784355ff2076f92d70d59047d71c13703e839" + resolved "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz" integrity sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g== dependencies: abbrev "1.0.x" @@ -6778,12 +6584,12 @@ sc-istanbul@^0.4.5: scrypt-js@3.0.1, scrypt-js@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== secp256k1@4.0.3, secp256k1@^4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== dependencies: elliptic "^6.5.4" @@ -6792,51 +6598,51 @@ secp256k1@4.0.3, secp256k1@^4.0.1: seedrandom@3.0.5: version "3.0.5" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" + resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz" integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== semaphore-async-await@^1.5.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz#857bef5e3644601ca4b9570b87e9df5ca12974fa" + resolved "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz" integrity sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg== semver@^5.5.0, semver@^5.6.0: version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^6.3.0, semver@^6.3.1: version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.4, semver@^7.5.1, semver@^7.5.2, semver@^7.5.4: version "7.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" semver@^7.3.7: version "7.6.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.1.tgz#60bfe090bf907a25aa8119a72b9f90ef7ca281b2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.1.tgz" integrity sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA== semver@^7.6.2: version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== serialize-javascript@6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" set-function-length@^1.2.1: version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: define-data-property "^1.1.4" @@ -6848,7 +6654,7 @@ set-function-length@^1.2.1: set-function-name@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz" integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== dependencies: define-data-property "^1.1.4" @@ -6858,22 +6664,22 @@ set-function-name@^2.0.1: set-immediate-shim@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" integrity sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ== setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -6881,7 +6687,7 @@ sha.js@^2.4.0, sha.js@^2.4.8: sha1@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/sha1/-/sha1-1.1.1.tgz#addaa7a93168f393f19eb2b15091618e2700f848" + resolved "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz" integrity sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA== dependencies: charenc ">= 0.0.1" @@ -6889,19 +6695,19 @@ sha1@^1.1.1: shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shelljs@^0.8.3: version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" @@ -6910,7 +6716,7 @@ shelljs@^0.8.3: side-channel@^1.0.4, side-channel@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: call-bind "^1.0.7" @@ -6920,17 +6726,17 @@ side-channel@^1.0.4, side-channel@^1.0.6: signal-exit@^3.0.2: version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== sinon-chai@^3.7.0: version "3.7.0" - resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.7.0.tgz#cfb7dec1c50990ed18c153f1840721cf13139783" + resolved "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz" integrity sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g== sinon@^17.0.1: version "17.0.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-17.0.1.tgz#26b8ef719261bf8df43f925924cccc96748e407a" + resolved "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz" integrity sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g== dependencies: "@sinonjs/commons" "^3.0.0" @@ -6942,7 +6748,7 @@ sinon@^17.0.1: sinon@^18.0.0: version "18.0.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-18.0.1.tgz#464334cdfea2cddc5eda9a4ea7e2e3f0c7a91c5e" + resolved "https://registry.npmjs.org/sinon/-/sinon-18.0.1.tgz" integrity sha512-a2N2TDY1uGviajJ6r4D1CyRAkzE9NNVlYOV1wX5xQDuAk0ONgzgRl0EjCQuRCPxOwp13ghsMwt9Gdldujs39qw== dependencies: "@sinonjs/commons" "^3.0.1" @@ -6954,12 +6760,12 @@ sinon@^18.0.0: slash@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -6968,7 +6774,7 @@ slice-ansi@^4.0.0: solc@0.7.3: version "0.7.3" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" + resolved "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz" integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== dependencies: command-exists "^1.2.8" @@ -6983,7 +6789,7 @@ solc@0.7.3: solc@0.8.15: version "0.8.15" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.15.tgz#d274dca4d5a8b7d3c9295d4cbdc9291ee1c52152" + resolved "https://registry.npmjs.org/solc/-/solc-0.8.15.tgz" integrity sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w== dependencies: command-exists "^1.2.8" @@ -6996,7 +6802,7 @@ solc@0.8.15: solc@0.8.17: version "0.8.17" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.17.tgz#c748fec6a64bf029ec406aa9b37e75938d1115ae" + resolved "https://registry.npmjs.org/solc/-/solc-0.8.17.tgz" integrity sha512-Dtidk2XtTTmkB3IKdyeg6wLYopJnBVxdoykN8oP8VY3PQjN16BScYoUJTXFm2OP7P0hXNAqWiJNmmfuELtLf8g== dependencies: command-exists "^1.2.8" @@ -7007,22 +6813,9 @@ solc@0.8.17: semver "^5.5.0" tmp "0.0.33" -solc@0.8.26: - version "0.8.26" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.26.tgz#afc78078953f6ab3e727c338a2fefcd80dd5b01a" - integrity sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g== - dependencies: - command-exists "^1.2.8" - commander "^8.1.0" - follow-redirects "^1.12.1" - js-sha3 "0.8.0" - memorystream "^0.3.1" - semver "^5.5.0" - tmp "0.0.33" - solhint-plugin-prettier@^0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz#e3b22800ba435cd640a9eca805a7f8bc3e3e6a6b" + resolved "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz" integrity sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA== dependencies: prettier-linter-helpers "^1.0.0" @@ -7055,12 +6848,12 @@ solhint@^5.1.0: solidity-comments-extractor@^0.0.8: version "0.0.8" - resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.8.tgz#f6e148ab0c49f30c1abcbecb8b8df01ed8e879f8" + resolved "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.8.tgz" integrity sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g== solidity-coverage@^0.8.5: version "0.8.12" - resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.8.12.tgz#c4fa2f64eff8ada7a1387b235d6b5b0e6c6985ed" + resolved "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.12.tgz" integrity sha512-8cOB1PtjnjFRqOgwFiD8DaUsYJtVJ6+YdXQtSZDrLGf8cdhhh8xzTtGzVTGeBf15kTv0v7lYPJlV/az7zLEPJw== dependencies: "@ethersproject/abi" "^5.0.9" @@ -7085,7 +6878,7 @@ solidity-coverage@^0.8.5: source-map-support@^0.5.13, source-map-support@^0.5.21: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -7093,29 +6886,29 @@ source-map-support@^0.5.13, source-map-support@^0.5.21: source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@~0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" integrity sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA== dependencies: amdefine ">=0.0.4" split-ca@^1.0.0, split-ca@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" + resolved "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz" integrity sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== ssh2@^1.11.0, ssh2@^1.15.0: version "1.15.0" - resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.15.0.tgz#2f998455036a7f89e0df5847efb5421748d9871b" + resolved "https://registry.npmjs.org/ssh2/-/ssh2-1.15.0.tgz" integrity sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw== dependencies: asn1 "^0.2.6" @@ -7126,7 +6919,7 @@ ssh2@^1.11.0, ssh2@^1.15.0: sshpk@^1.7.0: version "1.18.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz" integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== dependencies: asn1 "~0.2.3" @@ -7141,24 +6934,24 @@ sshpk@^1.7.0: stacktrace-parser@^0.1.10: version "0.1.10" - resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" + resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== dependencies: type-fest "^0.7.1" statuses@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== string-format@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" + resolved "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz" integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== string-width@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" @@ -7166,7 +6959,7 @@ string-width@^2.1.1: string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -7175,7 +6968,7 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2 string.prototype.trim@^1.2.9: version "1.2.9" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz" integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== dependencies: call-bind "^1.0.7" @@ -7185,7 +6978,7 @@ string.prototype.trim@^1.2.9: string.prototype.trimend@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz" integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== dependencies: call-bind "^1.0.7" @@ -7194,7 +6987,7 @@ string.prototype.trimend@^1.0.8: string.prototype.trimstart@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz" integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== dependencies: call-bind "^1.0.7" @@ -7203,95 +6996,95 @@ string.prototype.trimstart@^1.0.8: string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~0.10.x: version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-hex-prefix@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== dependencies: is-hex-prefixed "1.0.0" strip-json-comments@3.1.1, strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== supports-color@8.1.1: version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-color@^3.1.0: version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== dependencies: has-flag "^1.0.0" supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7, supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== sync-request@^6.0.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68" + resolved "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz" integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== dependencies: http-response-object "^3.0.1" @@ -7300,14 +7093,14 @@ sync-request@^6.0.0: sync-rpc@^1.2.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" + resolved "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz" integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== dependencies: get-port "^3.1.0" synckit@^0.8.6: version "0.8.8" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz" integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== dependencies: "@pkgr/core" "^0.1.0" @@ -7315,7 +7108,7 @@ synckit@^0.8.6: table-layout@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" + resolved "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz" integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== dependencies: array-back "^4.0.1" @@ -7325,7 +7118,7 @@ table-layout@^1.0.2: table@^6.8.0, table@^6.8.1: version "6.8.2" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" + resolved "https://registry.npmjs.org/table/-/table-6.8.2.tgz" integrity sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== dependencies: ajv "^8.0.1" @@ -7336,12 +7129,12 @@ table@^6.8.0, table@^6.8.1: tapable@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== tar-fs@~1.16.3: version "1.16.3" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz" integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== dependencies: chownr "^1.0.1" @@ -7351,7 +7144,7 @@ tar-fs@~1.16.3: tar-fs@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz" integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== dependencies: chownr "^1.1.1" @@ -7361,7 +7154,7 @@ tar-fs@~2.0.1: tar-stream@^1.1.2: version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz" integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== dependencies: bl "^1.0.0" @@ -7374,7 +7167,7 @@ tar-stream@^1.1.2: tar-stream@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== dependencies: bl "^4.0.3" @@ -7385,7 +7178,7 @@ tar-stream@^2.0.0: template-file@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/template-file/-/template-file-6.0.1.tgz#ce4d1f48e56d637cc94bb97ec205e6e035bbb2a5" + resolved "https://registry.npmjs.org/template-file/-/template-file-6.0.1.tgz" integrity sha512-02hOa1psJUOsahWfx8w3p40CCulA2/InNFFPh5xLq5rUUm2XTzvmtOn/SXV+KZaq7ylG58SYSnT4yW3y/Smn4w== dependencies: "@blakek/deep" "^2.2.0" @@ -7395,7 +7188,7 @@ template-file@^6.0.1: test-value@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" + resolved "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz" integrity sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w== dependencies: array-back "^1.0.3" @@ -7403,12 +7196,12 @@ test-value@^2.1.0: text-table@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== then-request@^6.0.0: version "6.0.2" - resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" + resolved "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz" integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== dependencies: "@types/concat-stream" "^1.6.0" @@ -7425,41 +7218,41 @@ then-request@^6.0.0: "through@>=2.2.7 <3": version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== tmp@0.0.33: version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" to-buffer@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== toml@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + resolved "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz" integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" @@ -7467,22 +7260,22 @@ tough-cookie@~2.5.0: tr46@~0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== treeify@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" + resolved "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz" integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== ts-api-utils@^1.0.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== ts-command-line-args@^2.2.0: version "2.5.1" - resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" + resolved "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz" integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== dependencies: chalk "^4.1.0" @@ -7492,17 +7285,17 @@ ts-command-line-args@^2.2.0: ts-essentials@^1.0.0: version "1.0.4" - resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-1.0.4.tgz#ce3b5dade5f5d97cf69889c11bf7d2da8555b15a" + resolved "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz" integrity sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ== ts-essentials@^7.0.1: version "7.0.3" - resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" + resolved "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz" integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== ts-generator@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/ts-generator/-/ts-generator-0.1.1.tgz#af46f2fb88a6db1f9785977e9590e7bcd79220ab" + resolved "https://registry.npmjs.org/ts-generator/-/ts-generator-0.1.1.tgz" integrity sha512-N+ahhZxTLYu1HNTQetwWcx3so8hcYbkKBHTr4b4/YgObFTIKkOSSsaa+nal12w8mfrJAyzJfETXawbNjSfP2gQ== dependencies: "@types/mkdirp" "^0.5.2" @@ -7517,7 +7310,7 @@ ts-generator@^0.1.1: ts-morph@^19.0.0: version "19.0.0" - resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-19.0.0.tgz#43e95fb0156c3fe3c77c814ac26b7d0be2f93169" + resolved "https://registry.npmjs.org/ts-morph/-/ts-morph-19.0.0.tgz" integrity sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ== dependencies: "@ts-morph/common" "~0.20.0" @@ -7525,7 +7318,7 @@ ts-morph@^19.0.0: ts-node@^10.1.0: version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" @@ -7544,7 +7337,7 @@ ts-node@^10.1.0: tsconfig-paths@^3.15.0: version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" @@ -7554,83 +7347,83 @@ tsconfig-paths@^3.15.0: tslib@^1.9.3: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tsort@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" + resolved "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz" integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tweetnacl-util@^0.15.1: version "0.15.1" - resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" + resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== tweetnacl@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-check@~0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-detect@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz" integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^0.7.1: version "0.7.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== typechain@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-4.0.3.tgz#e8fcd6c984676858c64eeeb155ea783a10b73779" + resolved "https://registry.npmjs.org/typechain/-/typechain-4.0.3.tgz" integrity sha512-tmoHQeXZWHxIdeLK+i6dU0CU0vOd9Cndr3jFTZIMzak5/YpFZ8XoiYpTZcngygGBqZo+Z1EUmttLbW9KkFZLgQ== dependencies: command-line-args "^4.0.7" @@ -7643,7 +7436,7 @@ typechain@^4.0.0: typechain@^8.0.0: version "8.3.2" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.2.tgz#1090dd8d9c57b6ef2aed3640a516bdbf01b00d73" + resolved "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz" integrity sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q== dependencies: "@types/prettier" "^2.1.1" @@ -7659,7 +7452,7 @@ typechain@^8.0.0: typed-array-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz" integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== dependencies: call-bind "^1.0.7" @@ -7668,7 +7461,7 @@ typed-array-buffer@^1.0.2: typed-array-byte-length@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz" integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== dependencies: call-bind "^1.0.7" @@ -7679,7 +7472,7 @@ typed-array-byte-length@^1.0.1: typed-array-byte-offset@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz" integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== dependencies: available-typed-arrays "^1.0.7" @@ -7691,7 +7484,7 @@ typed-array-byte-offset@^1.0.2: typed-array-length@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz" integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== dependencies: call-bind "^1.0.7" @@ -7703,47 +7496,47 @@ typed-array-length@^1.0.6: typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== typescript@^4.6.4: version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== typescript@^5.2.2: version "5.4.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.4.tgz#eb2471e7b0a5f1377523700a21669dce30c2d952" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz" integrity sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw== typical@^2.6.0, typical@^2.6.1: version "2.6.1" - resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" + resolved "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz" integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== typical@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz" integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== typical@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + resolved "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: version "3.17.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: call-bind "^1.0.2" @@ -7753,46 +7546,46 @@ unbox-primitive@^1.0.2: undici-types@~5.26.4: version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== undici@^5.14.0: version "5.28.4" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068" + resolved "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz" integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== dependencies: "@fastify/busboy" "^2.0.0" undici@^6.18.2: version "6.19.8" - resolved "https://registry.yarnpkg.com/undici/-/undici-6.19.8.tgz#002d7c8a28f8cc3a44ff33c3d4be4d85e15d40e1" + resolved "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz" integrity sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g== universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== unpipe@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== uri-js@^4.2.2, uri-js@^4.4.1: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" url@^0.11.0: version "0.11.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" + resolved "https://registry.npmjs.org/url/-/url-0.11.3.tgz" integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== dependencies: punycode "^1.4.1" @@ -7800,46 +7593,46 @@ url@^0.11.0: utf-8-validate@5.0.7: version "5.0.7" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922" + resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz" integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== dependencies: node-gyp-build "^4.3.0" utf8@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + resolved "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz" integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util@^0.10.3: version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + resolved "https://registry.npmjs.org/util/-/util-0.10.4.tgz" integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== dependencies: inherits "2.0.3" uuid@^3.3.2: version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8-compile-cache-lib@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== verror@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" @@ -7848,12 +7641,12 @@ verror@1.10.0: weak-map@~1.0.x: version "1.0.8" - resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.8.tgz#394c18a9e8262e790544ed8b55c6a4ddad1cb1a3" + resolved "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz" integrity sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw== web3-utils@^1.3.4, web3-utils@^1.3.6: version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.4.tgz#0daee7d6841641655d8b3726baf33b08eda1cbec" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz" integrity sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A== dependencies: "@ethereumjs/util" "^8.1.0" @@ -7867,12 +7660,12 @@ web3-utils@^1.3.4, web3-utils@^1.3.6: webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" @@ -7880,7 +7673,7 @@ whatwg-url@^5.0.0: which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -7891,7 +7684,7 @@ which-boxed-primitive@^1.0.2: which-typed-array@^1.1.14, which-typed-array@^1.1.15: version "1.1.15" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz" integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== dependencies: available-typed-arrays "^1.0.7" @@ -7902,38 +7695,38 @@ which-typed-array@^1.1.14, which-typed-array@^1.1.15: which@2.0.2, which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" which@^1.1.1, which@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" widest-line@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: string-width "^4.0.0" word-wrap@^1.2.5, word-wrap@~1.2.3: version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wordwrap@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wordwrapjs@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" + resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz" integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== dependencies: reduce-flatten "^2.0.0" @@ -7941,17 +7734,17 @@ wordwrapjs@^4.0.0: workerpool@6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz" integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== workerpool@6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -7960,67 +7753,67 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@7.4.6: version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== ws@^7.4.6: version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== xhr2@0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.3.tgz#cbfc4759a69b4a888e78cf4f20b051038757bd11" + resolved "https://registry.npmjs.org/xhr2/-/xhr2-0.1.3.tgz" integrity sha512-6RmGK22QwC7yXB1CRwyLWuS2opPcKOlAu0ViAnyZjDlzrEmCKL4kLHkfvB8oMRWeztMsNoDGAjsMZY15w/4tTw== xregexp@3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-3.1.0.tgz#14d8461e0bdd38224bfee5039a0898fc42fcd336" + resolved "https://registry.npmjs.org/xregexp/-/xregexp-3.1.0.tgz" integrity sha512-4Y1x6DyB8xRoxosooa6PlGWqmmSKatbzhrftZ7Purmm4B8R4qIEJG1A2hZsdz5DhmIqS0msC0I7KEq93GphEVg== xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^2.7.0: version "2.7.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.0.tgz#aef9bb617a64c937a9a748803786ad8d3ffe1e98" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz" integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA== yargs-parser@20.2.4: version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== yargs-parser@^20.2.2: version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-unparser@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -8030,7 +7823,7 @@ yargs-unparser@2.0.0: yargs@16.2.0: version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -8043,36 +7836,29 @@ yargs@16.2.0: yn@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== yocto-queue@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== zksync-ethers@5.8.0-beta.5: version "5.8.0-beta.5" - resolved "https://registry.yarnpkg.com/zksync-ethers/-/zksync-ethers-5.8.0-beta.5.tgz#4f70193a86bd1e41b25b0aa5aa32f6d41d52f7c6" + resolved "https://registry.npmjs.org/zksync-ethers/-/zksync-ethers-5.8.0-beta.5.tgz" integrity sha512-saT/3OwLgifqzrBG7OujvUMapzXnshAaLzAZMycUtdV20eLSSVkyLIARVwh1M6hMQIUvX2htV0JN82QRMyM3Ig== dependencies: ethers "~5.7.0" -zksync-ethers@^5.0.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/zksync-ethers/-/zksync-ethers-5.8.0.tgz#ff054345048f851c33cb6efcf2094f40d4da6063" - integrity sha512-/4qI5UElh0lspu0ew2IXBCO+O9kXEzZOM7JqvlfRWWGIUKZ+EDXnjIPgkH0y5/MnMT3FDq9koAAUCyZVWqHUJg== - dependencies: - ethers "~5.7.0" - -zksync-ethers@^5.9.0: +zksync-ethers@^5.0.0, zksync-ethers@^5.9.0: version "5.9.2" - resolved "https://registry.yarnpkg.com/zksync-ethers/-/zksync-ethers-5.9.2.tgz#1c5f34cb25ac0b040fd1a6118f2ba1c2c3bda090" + resolved "https://registry.npmjs.org/zksync-ethers/-/zksync-ethers-5.9.2.tgz" integrity sha512-Y2Mx6ovvxO6UdC2dePLguVzvNToOY8iLWeq5ne+jgGSJxAi/f4He/NF6FNsf6x1aWX0o8dy4Df8RcOQXAkj5qw== dependencies: ethers "~5.7.0"