@superfluid-finance/ethereum-contracts 1.2.2-dev.c9bc19b.0 → 1.2.2-dev.ec379f7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/contracts/AccessControl.json +1 -1
- package/build/contracts/AccessControlEnumerable.json +1 -1
- package/build/contracts/Address.json +1 -1
- package/build/contracts/AgreementBase.json +18 -18
- package/build/contracts/AgreementLibrary.json +450 -243
- package/build/contracts/BaseRelayRecipient.json +112 -112
- package/build/contracts/BatchLiquidator.json +178 -178
- package/build/contracts/BatchOperation.json +1138 -1138
- package/build/contracts/CFAv1Library.json +2531 -2531
- package/build/contracts/CallUtils.json +478 -478
- package/build/contracts/ClosingOnUpdateFlowTestApp.json +1521 -1521
- package/build/contracts/ConstantFlowAgreementV1.json +19314 -18334
- package/build/contracts/Context.json +1 -1
- package/build/contracts/ContextDefinitions.json +1138 -1138
- package/build/contracts/Create2.json +1 -1
- package/build/contracts/CustomSuperTokenBase.json +31 -31
- package/build/contracts/ERC165.json +1 -1
- package/build/contracts/ERC1820Implementer.json +1 -1
- package/build/contracts/ERC20.json +1 -1
- package/build/contracts/ERC20Burnable.json +1 -1
- package/build/contracts/ERC20Pausable.json +1 -1
- package/build/contracts/ERC20PresetMinterPauser.json +1 -1
- package/build/contracts/ERC20WithTokenInfo.json +36 -36
- package/build/contracts/ERC721.json +1 -1
- package/build/contracts/ERC777Helper.json +660 -660
- package/build/contracts/ERC777RecipientDrainingGas.json +855 -855
- package/build/contracts/ERC777RecipientReverting.json +855 -855
- package/build/contracts/EnumerableSet.json +1 -1
- package/build/contracts/ExclusiveInflowTestApp.json +1521 -1521
- package/build/contracts/FixedSizeData.json +405 -405
- package/build/contracts/FlowExchangeTestApp.json +1522 -1522
- package/build/contracts/FlowOperatorDefinitions.json +1138 -1138
- package/build/contracts/FullUpgradableSuperTokenProxy.json +113 -113
- package/build/contracts/IAccessControl.json +1 -1
- package/build/contracts/IAccessControlEnumerable.json +1 -1
- package/build/contracts/IConstantFlowAgreementV1.json +1036 -1036
- package/build/contracts/IDAv1Library.json +4183 -4183
- package/build/contracts/IERC165.json +1 -1
- package/build/contracts/IERC1820Implementer.json +1 -1
- package/build/contracts/IERC1820Registry.json +1 -1
- package/build/contracts/IERC20.json +1 -1
- package/build/contracts/IERC20Metadata.json +1 -1
- package/build/contracts/IERC721.json +1 -1
- package/build/contracts/IERC721Metadata.json +1 -1
- package/build/contracts/IERC721Receiver.json +1 -1
- package/build/contracts/IERC777.json +1 -1
- package/build/contracts/IERC777Recipient.json +1 -1
- package/build/contracts/IERC777Sender.json +1 -1
- package/build/contracts/IInstantDistributionAgreementV1.json +1182 -1182
- package/build/contracts/IMaticBridgedNativeSuperToken.json +110 -110
- package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +110 -110
- package/build/contracts/IMultiSigWallet.json +45 -45
- package/build/contracts/IPureSuperToken.json +69 -69
- package/build/contracts/IPureSuperTokenCustom.json +69 -69
- package/build/contracts/IRelayRecipient.json +49 -49
- package/build/contracts/IResolver.json +73 -73
- package/build/contracts/ISETH.json +79 -79
- package/build/contracts/ISETHCustom.json +79 -79
- package/build/contracts/ISuperAgreement.json +88 -88
- package/build/contracts/ISuperApp.json +351 -351
- package/build/contracts/ISuperToken.json +1008 -1008
- package/build/contracts/ISuperTokenFactory.json +280 -280
- package/build/contracts/ISuperfluid.json +1466 -1466
- package/build/contracts/ISuperfluidGovernance.json +404 -404
- package/build/contracts/ISuperfluidToken.json +774 -774
- package/build/contracts/ITOGAv1.json +1431 -1431
- package/build/contracts/ITOGAv2.json +1431 -1431
- package/build/contracts/Initializable.json +1 -1
- package/build/contracts/InstantDistributionAgreementV1.json +9343 -9343
- package/build/contracts/Int96SafeMath.json +504 -504
- package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +228 -228
- package/build/contracts/NonClosableOutflowTestApp.json +1522 -1522
- package/build/contracts/Ownable.json +1 -1
- package/build/contracts/Pausable.json +1 -1
- package/build/contracts/Proxy.json +1 -1
- package/build/contracts/PureSuperToken.json +106 -106
- package/build/contracts/Resolver.json +98 -98
- package/build/contracts/SETHProxy.json +224 -224
- package/build/contracts/SafeCast.json +1 -1
- package/build/contracts/SafeERC20.json +1 -1
- package/build/contracts/SafeMath.json +1 -1
- package/build/contracts/SelfDeletingFlowTestApp.json +1521 -1521
- package/build/contracts/SlotsBitmapLibrary.json +794 -794
- package/build/contracts/Strings.json +1 -1
- package/build/contracts/SuperAppBase.json +394 -394
- package/build/contracts/SuperAppDefinitions.json +1138 -1138
- package/build/contracts/SuperToken.json +2351 -2351
- package/build/contracts/SuperTokenFactory.json +731 -731
- package/build/contracts/SuperTokenFactoryBase.json +721 -721
- package/build/contracts/SuperTokenFactoryHelper.json +724 -724
- package/build/contracts/SuperUpgrader.json +437 -437
- package/build/contracts/Superfluid.json +9812 -10169
- package/build/contracts/SuperfluidFrameworkDeployer.json +535 -535
- package/build/contracts/SuperfluidGovernanceBase.json +3471 -3789
- package/build/contracts/SuperfluidGovernanceConfigs.json +1138 -1138
- package/build/contracts/SuperfluidGovernanceII.json +2097 -2347
- package/build/contracts/SuperfluidGovernanceIIProxy.json +214 -214
- package/build/contracts/SuperfluidLoader.json +207 -207
- package/build/contracts/SuperfluidToken.json +1345 -1345
- package/build/contracts/TOGA.json +1448 -1448
- package/build/contracts/TestGovernance.json +2195 -2445
- package/build/contracts/TestToken.json +94 -94
- package/build/contracts/TokenCustodian.json +214 -214
- package/build/contracts/TokenInfo.json +58 -58
- package/build/contracts/UInt128SafeMath.json +97 -97
- package/build/contracts/UUPSProxiable.json +132 -132
- package/build/contracts/UUPSProxy.json +81 -81
- package/build/contracts/UUPSUtils.json +37 -37
- package/build/contracts-sizes.txt +3 -4
- package/contracts/agreements/AgreementLibrary.sol +1 -0
- package/contracts/agreements/ConstantFlowAgreementV1.sol +71 -35
- package/contracts/agreements/InstantDistributionAgreementV1.sol +3 -2
- package/contracts/gov/SuperfluidGovernanceBase.sol +9 -26
- package/contracts/{agreements → libs}/SlotsBitmapLibrary.sol +1 -3
- package/contracts/mocks/SuperfluidMock.sol +2 -2
- package/contracts/superfluid/Superfluid.sol +5 -10
- package/package.json +2 -1
- package/scripts/gov-create-new-app-registration-key.js +26 -3
|
@@ -64,9 +64,9 @@
|
|
|
64
64
|
"type": "function"
|
|
65
65
|
}
|
|
66
66
|
],
|
|
67
|
-
"metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"deployWrapperSuperToken\",\"outputs\":[{\"internalType\":\"contract ERC20PresetMinterPauser\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"contract SuperToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFramework\",\"outputs\":[{\"internalType\":\"contract Superfluid\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"contract ConstantFlowAgreementV1\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"contract InstantDistributionAgreementV1\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"contract SuperTokenFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Superfluid Framework Deployer\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Deploys everything... probably\"},\"deployWrapperSuperToken(string,string)\":{\"notice\":\"Deploy new wrapper super token\"},\"getFramework()\":{\"notice\":\"Fetches the framework contracts\"}},\"notice\":\"This is NOT for deploying public nets, but rather only for tesing envs\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/utils/SuperfluidFrameworkDeployer.sol\":\"SuperfluidFrameworkDeployer\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0x0edeb16b9821ae2b16e9d69c383b38d3ad2fbb3e0c06cf809a0786d96e602551\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88adc865fb1bd8dab4c58096e1d5887713f62c0405f8d2d17294727a8f43d8f7\",\"dweb:/ipfs/QmUJ27zsjxCatfoTFWho4k4qdhuBTorMqLuJzWqUX4Sdmg\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x4823752b07b8ea4ca971b217e39457930e7cb103c2c91e2a29729e5ca907e4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f319af26a9ade3e6cf3698bf1b84aa6213bdd7a76606ea9ba56ced163593934\",\"dweb:/ipfs/QmZ2u9zen5Htan4dSP1RZCY2XqB9HUwqkNCMzdn7aV2jWc\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0xe68ed7fb8766ed1e888291f881e36b616037f852b37d96877045319ad298ba87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d491a2ca79dbf44bc02e876e21a5847a2cbcc011188532ad8662cdc1c134a4e\",\"dweb:/ipfs/QmUQXhSV8ZvHLzfdG89ZNSh1nLrAYyjnNBLznJGwGcwVk8\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xdadd41acb749920eccf40aeaa8d291adf9751399a7343561bad13e7a8d99be0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12af4ac016f9fdf3be5d15824f4292272aa11f6b2e0192a0f7320f5ad49bbbf0\",\"dweb:/ipfs/QmRXMpdqCgA3TYuYxBodqs5p9jGbnMW6xa2gvjppvq4TWk\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol\":{\"keccak256\":\"0x978847fbff92d66d27d8767402a90ba996970b1936b372406aa17f5492bd8dc5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1414cb92779420b50d3e796b47bad6ea800ef1805bc6f9bf35a3ccb4e17db3dc\",\"dweb:/ipfs/QmaMzwYqLiivfaWSgqeaAPboBtJjVD1hSrH48p7ExJZ7DG\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol\":{\"keccak256\":\"0x2cd54808b851c4db22f459065af0b7a952262741a85a73923e7a660767cd7baa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://750c4a78e953fe92317bba7166afd0a4b7725723e5822ea1b92ffd4e72d2d36b\",\"dweb:/ipfs/QmZNyCSrdYXGQfmB6LkbX8R6y4gGZRNh1d2pJobYBpkaRF\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0xe4e0b7e3f0265ffaa565d26acd2d45f2633f19127ed625e5a05a9f201a87a667\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1762b5bc15a009b5f092ccf547b81e0827c8705884f18e0623e497658514a7ed\",\"dweb:/ipfs/QmTtmVQYuynan3j2uVjdjjRJS1mr7LPRgxSZNnfqC7oxkz\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol\":{\"keccak256\":\"0x1a5d61db2733202ba361e6d6741cd2e662380e22b80e987eacfc91973f2267dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04c0cd697050a6516b7779aa2343ad2d0e5217d8915ac2382681dfdf4e445be3\",\"dweb:/ipfs/QmPCBCZgm7pHBwwogE2F9NCN3UfTdLNhqc8UDEvw8kDzyA\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Sender.sol\":{\"keccak256\":\"0x742e51d63b108240759794360637468d9fcbf072cbd357744790d356a87bb382\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23912910ce2bb68e49ff83f43fcfa864210ee44580491e876db14922f8aecc18\",\"dweb:/ipfs/QmU6GnRQ51xvY8D57kPCV47oGeYozaz5AQZUCHxFfXdFZ4\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xebe3f8a59f0f1c96344a05edb984ef666ee4207e993cca99af3808f1de8771b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0db23062a52185cf06ad4202be0bfa4c7718c4b75f4526aeb456620ff2e737d4\",\"dweb:/ipfs/QmXtWdePeH6xpXf175YcnbwjsuLp35k6JxX8CjHzvHiyAi\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol\":{\"keccak256\":\"0x6e306f9ab28416a9e5931f0b6e264676e8ac68fad184f9a9d8bb125c6ec23bc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd7fe961c914caa1fcc8223d446c1582aec4f2a32d2f06cf09c938b72cf8ce11\",\"dweb:/ipfs/QmPfEfqtUh9SA86br28HfmMyVSBe22B3oPwF8iACCF4evY\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x5c6caab697d302ad7eb59c234a4d2dbc965c1bae87709bd2850060b7695b28c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb62abcee612c175f1b9bc70e5dfe5bd23473c99987ade6e80e291f68dc60ff1\",\"dweb:/ipfs/QmZCMajhG7FtRYNDwBchXN89mXR6HLPVzr9732qfUdNf9E\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0xa2f576be637946f767aa56601c26d717f48a0aff44f82e46f13807eea1009a21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://973868f808e88e21a1a0a01d4839314515ee337ad096286c88e41b74dcc11fc2\",\"dweb:/ipfs/QmfYuZxRfx2J2xdk4EXN7jKg4bUYEMTaYk9BAw9Bqn4o2Y\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"project:/contracts/agreements/AgreementBase.sol\":{\"keccak256\":\"0xe59fc8bbe728c574773b5d3a3e9cfb4e8f323e9a3c3267a82d36fb79921b9997\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://0e21d969b3b996ab211eff83fa5bb7041614c0ac597c7479012c0fe625f4e15f\",\"dweb:/ipfs/QmWThBae9FCDgCAcco2bZicvsPq8vz5K1XW66hz3LXSK2V\"]},\"project:/contracts/agreements/AgreementLibrary.sol\":{\"keccak256\":\"0x5e13526a65b40d5132b9fc1e07c04692c66027f5b07d9fe8b3013a8ecd7c7cc3\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9fe8225dda0cadcb94bab2b1e5a60edcd87fdf0ae631a0475f9616aad66e12c2\",\"dweb:/ipfs/QmQWXwpHfdi8B6ByWzAGmF7xghRadFoRf4hMP7CV3EDZLj\"]},\"project:/contracts/agreements/ConstantFlowAgreementV1.sol\":{\"keccak256\":\"0x529b95c6cbf00fda9e82dfc53860b23b6ab184cb30d6cafb29a918f056bfeb77\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://e5cbfeb371f64ecc6e95936244d0e32ee73b1cc630bcba1a1c8287065fc3d14d\",\"dweb:/ipfs/QmYzvVnAhmQjkrYALMoS8AxyJ5svTaqYMX6hjX7iktNske\"]},\"project:/contracts/agreements/InstantDistributionAgreementV1.sol\":{\"keccak256\":\"0x357cbf41548022b564ef0112f2ed3f810628cc95c60c4ed61e39e4941cf76ee6\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://a93fb56d567fec016a9b98b41a4f65598685e314eb0b2bf340addda3348aa917\",\"dweb:/ipfs/QmXUPvzd96mJzz9BfqmD2FmqEPw1tCBnYCB4Cscv6xCL9o\"]},\"project:/contracts/agreements/SlotsBitmapLibrary.sol\":{\"keccak256\":\"0xdfd5c62f797e77bcc9e996c3b9e872b87b6af23081708f87f49f6e2253be0871\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://ce2a8a85c0097b393a0a17e6980139a00e76c103a10369159430d4e0c4431280\",\"dweb:/ipfs/QmR1v1TLjo7q8sZgETS5fAZ2WgkZkuJHVHzTQG42aUGRn9\"]},\"project:/contracts/gov/SuperfluidGovernanceBase.sol\":{\"keccak256\":\"0x7daa7a85e1fce46c89c18914c5fc93c6885eec85bb1e4eb72c3aef15d64d307c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://dfc4328192f50200e4027756c1bd099ac8abdd99be6ab3b7e2b8e31f4ee7c907\",\"dweb:/ipfs/QmWXoBkjzyLZJBhH51pV7byJMET97qBeiCMX9vLszqhKR9\"]},\"project:/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol\":{\"keccak256\":\"0xb96bb6cb0fe88ddf5b890b6826f7f7585cf6e94223c76d8e2fb269779afe4445\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://b864597ae952222f0f43c66943492966013021c4171d5ef4f7357c047dfd737c\",\"dweb:/ipfs/Qmcr7xicfmPDD343B34ETP3XrdU9Vi1z3zxJSgqLipfQmY\"]},\"project:/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol\":{\"keccak256\":\"0x47948789bc2265e6228f70ddd9eb194be4e35b1c5ce598f5b5a01fcb48def27b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d758b5560a735d8ab2175a2b76afe38f99bf170800917c4f0adae1f8862ad785\",\"dweb:/ipfs/QmXZToKtnJXmJq4hBqkwVAj6CYkG2DGbErt9G9T7sW4Zoe\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x199095781e4221b6015d859558da09977f79199f38d342ab4899c2cecdf8cec1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9fd3a5a8b16d8517e2af10e20390a9af5adbfa4e783e3a7dd89eb4588db98385\",\"dweb:/ipfs/QmPDtGR43DeMMVsHjUh7FYzMGsFKPpGriRkaahFpN5T5d3\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x57f4203168992c940eb6b8c7cc75f854cb36a1f9323b3f39ddc5e4fbe819c043\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://888941dfa3e5004f678f215b98a85d1bf54e412317928a78e0a1cff090773d4c\",\"dweb:/ipfs/QmVe838upcAyqpy1d3oQNHJrbRyWCKHL51zWrMKruvLxFG\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0x3cb0b7216007b942f7611d7b3d983c0df9408fdd4fd6b799c33fc9033e0abf8b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://17901a1fd3635f441671e14ece8ecc6806af20c5eb80cca3b7c6e53a51fef7b6\",\"dweb:/ipfs/QmUXXMfU6nmsyEnufyGEwyZ5M7pzpXNTr6vw32e3JjjoZp\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0xc1007d1082050b532947d27973bf996da2b0df9bdf6ed4d4fcaaa3ff2354262c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://2d22da1d2140b1ed3964ddc62d3a38e9a24a8814c18ffe496f0fbce5afef5ea0\",\"dweb:/ipfs/QmYxVnaU87HSaQktkqCZZBFj3MgphgFsZMrMLXLeZLzrvR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0x2166f766b7f61f9bb1376b0948efa0d0c0046b93dc301e51ce495203b145189b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://929630e6a15f523b142b2897783b2f7a54532ac5ae578bd17a0b7f25a6ca2bd8\",\"dweb:/ipfs/QmTu9ffH9qbQncJGEc24bmnoCGjifQ7BG47AYR8AzMLfXR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x9189eaba9e856cc4932ea29eeaf4e89a09448dde13860591691ec122856fdc75\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7d5991b906bba706373f5bfe3c2c8789a7a45360a41eee50574272b393c4ab70\",\"dweb:/ipfs/QmVCXVnYA13vMNxa7rGzNB129sUXiGE1asuHdnEMEPVZsp\"]},\"project:/contracts/interfaces/tokens/ERC20WithTokenInfo.sol\":{\"keccak256\":\"0x66708dae3fcd06e6fc0a46f2959fc2d1e6b9361f28598337339d26af8eb8c0f9\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://77b80718cec21b81ef190c19fb9fbe73913a95c71f7e6715f671bbe8a224dafc\",\"dweb:/ipfs/QmUdsc6DF2Bgih5VZm7sfaECjhGmwE7tAx8pMkzGQgVKQw\"]},\"project:/contracts/interfaces/tokens/TokenInfo.sol\":{\"keccak256\":\"0x70e573644a0ff271c0ccef526809e9d9ab4950ec58755ca84e833cde3b8f3df0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://aea3709687cc37ba625f4cc882fbdb149a7bf5be5afe2b030203c8719641a77b\",\"dweb:/ipfs/QmVpvfR6ZheE5wNUK9CobaVBgVvEnEPkvjWF9cfwyZr7eQ\"]},\"project:/contracts/interfaces/utils/IRelayRecipient.sol\":{\"keccak256\":\"0x3f531ce91c165b7581483798cc920d38828d509df6cb9d427a10c922b4627790\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://c4b872da16464ec4a06422b2bf0e95594f0458cca02993cefdbc76b5f7b7a974\",\"dweb:/ipfs/Qma9nVTfu6kbLQ6y58ZnDRXX8YzKiyASWeCsdY8ue6rpdT\"]},\"project:/contracts/libs/BaseRelayRecipient.sol\":{\"keccak256\":\"0x505cc7758bcb57e40bccac0108f990a00c1e307f8fd33d490feb7473b3829f63\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://5adff7a74c567ef936cc5b0d2425688db81488e58d3f6720d9d108b8aa8230a9\",\"dweb:/ipfs/QmTtese5RWc7xCxp1hMTkeZkHbFcYhxK6xxPMm5QSs9GV5\"]},\"project:/contracts/libs/CallUtils.sol\":{\"keccak256\":\"0x16b6a382d6e75244f35ced44126b23472fcc94a412391c9db693e83bb810f76a\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d43974dcedc193e8ef84fb44f41b27b4e74e3af476b4c2f9d0e6b271fa83e354\",\"dweb:/ipfs/QmUZG2Rqh8yzZ79rT4rmCKSkuKFk5QkRpSYGJXgVHwDFr9\"]},\"project:/contracts/libs/ERC777Helper.sol\":{\"keccak256\":\"0x5db4d5e987d0659d5fd915e9823359141ad3d9d5796e50ae98756bccc86ea9d6\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://2a4e7413e6539cffc1ea0807f05ac49fea8ebc258a9d76b72bade12a0c143075\",\"dweb:/ipfs/QmTsrsMe3bcwB4JnfPAiG1bNvEdTAVFTSyVBKQALVuLMWy\"]},\"project:/contracts/libs/FixedSizeData.sol\":{\"keccak256\":\"0xbb3de3fbf919ef59b6890063847904d2824d7a0da63ff486d97a19eb8f4241f5\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://23a9d841867cbe1da4487d78929cc994352c22c9113840f98c15f0870b612f6f\",\"dweb:/ipfs/QmS7tZMw2itiie8BPosFiwmZy8TUipHUbzpEAf66SficGL\"]},\"project:/contracts/libs/Int96SafeMath.sol\":{\"keccak256\":\"0xbd674ccbea4bc7c5cf1af19cf31fcd5261ac913f5909992c18b7832aef02721b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://c2e8c9ded61ea509eccca9a99dd3f4aaa3ef4132720056e4ce4086bce21f3b68\",\"dweb:/ipfs/QmfD9idja1rMjKF5XMCKeDfzG5KAMejuSmFATLVTUQb5nj\"]},\"project:/contracts/libs/UInt128SafeMath.sol\":{\"keccak256\":\"0xa606106997a2d49781bb75153ca063cc156a4bd2995b93689804fb1f633598bb\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://bf5329c5e16ce8f5cbbb5b82f74afb6641a49ed78a4f6f9b1f80bd16c0774537\",\"dweb:/ipfs/QmWqeSsvzRsxoAszVt9T1G19vt1fdT5HRhJcE9LVYEcDt1\"]},\"project:/contracts/superfluid/FullUpgradableSuperTokenProxy.sol\":{\"keccak256\":\"0x8351cd8c965160f68ab2b5ffde063d1457d3f51c179a7c1081547a60d856bc3c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://152dc489a518ac6f9b90b42c52faebc0cbb7479516c606b8ca3b7f7c63945717\",\"dweb:/ipfs/QmW5Q5K3zqsFmcRXA3FMsoom76tYuHUF9pZLvZYZGynnxe\"]},\"project:/contracts/superfluid/SuperToken.sol\":{\"keccak256\":\"0xcaa50b4f7c92fd51a483f31d9869d7ad4a8b11d0fb7564eca1859434a18ba429\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://5311245d23b5e6359a95a9b62ca047f6bdcb82b68c309aaf44d7852c6af7ff96\",\"dweb:/ipfs/QmNvbjHfENCwJVprouTgDS1M7J2PTyuuuKshKtAnjWEjAJ\"]},\"project:/contracts/superfluid/SuperTokenFactory.sol\":{\"keccak256\":\"0x3cb80ed9391959d9d79cc06f95071b00dee5b07e28fc0a75e7d6338b40ebddbb\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://8d589a8000d2b57865d0ca3f9d2342971003eff476e3aeb1fcd36c903cde429b\",\"dweb:/ipfs/QmSdbmi2TCLKBqNvHBEfsdujSFa6ievkqHkKjLX2B5QbQ5\"]},\"project:/contracts/superfluid/Superfluid.sol\":{\"keccak256\":\"0x682d810eb013bc00a956d036a0d84bda515f34ef2ae5427b6f090afdcdca8153\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://c2429a3a4182fdde63a653c33566222025150e286927984709fed9ee33519473\",\"dweb:/ipfs/QmSqYd4ccGWnkXxbocnko89QUEeujMKbCiEeRThs1pZf5v\"]},\"project:/contracts/superfluid/SuperfluidToken.sol\":{\"keccak256\":\"0x10158d04d399c5cdcfba45161d8241924b21cda4301f6f5f9f019c21f2647da0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://983f259f440910fdb8fa8a3d8c990e99982e7865b4d97f36ba9f24287d485fdf\",\"dweb:/ipfs/QmdYnYuPwmYWzBoNgP4pN4kKCqBm2oDRJUfpSFhFtaRtii\"]},\"project:/contracts/upgradability/UUPSProxiable.sol\":{\"keccak256\":\"0x5f50cec21a585dab7b59545aeb51735f36e3222e4b0768370be8d46373d0ef05\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://acdd57d81b5b2d346da335636baf1e37da3d31cf2eef58af493e43bc65a27414\",\"dweb:/ipfs/QmTepRBNAfRBXVDBM37ME1jpw1YgcseVehC17sWpEYeFDc\"]},\"project:/contracts/upgradability/UUPSProxy.sol\":{\"keccak256\":\"0x1164a0047c0600d162060fc9ea72a5e50779a9ccd28143fa4a984f5a635493cc\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://1205e5b16fd67b2bf99bb917175d0bd1caaa1509d3f4a4f3c8184e8c40c564ef\",\"dweb:/ipfs/Qme96cpfG4LNjdA44H2CZP3zYT73XEtRZMXpBGMTDjtFVf\"]},\"project:/contracts/upgradability/UUPSUtils.sol\":{\"keccak256\":\"0xffec084e77ce3c0b595f0612687242f3d8b7a84cab15e5650c17428ee48d0b5b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://be0183816467872b053562d9a737042ac3a91ea67e3c74e03de5db7226f3e73b\",\"dweb:/ipfs/QmUyi4YXh1T7MExbrLwZ6rAdXTPChF8q27YpZxxniR6CHM\"]},\"project:/contracts/utils/SuperfluidFrameworkDeployer.sol\":{\"keccak256\":\"0x944451a2894698f342c75e8bac1fa77f134ef6b77bd49c9d6cb509c5e8d64505\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://f87165f1dbec842028e218e1166527e83dc6740b21a683766d0215d48605905d\",\"dweb:/ipfs/QmbtzVUqPZe6tmKep7MvN7L3eXv2zVjYL6ddZYd45Gg4Kr\"]},\"project:/contracts/utils/TestGovernance.sol\":{\"keccak256\":\"0x88232403c83d71e09b94ff78bf4464d5707c55052247c94b5d0a7808b4ab366b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://b4b364b1555bad346d96ea124597823514c75a0f49b30136d65b3b9be4d09aac\",\"dweb:/ipfs/QmQKztdSztuVcW6EnQzTUvjFS2Dudi89g1sZ2fxBEZSuoy\"]}},\"version\":1}",
|
|
68
|
-
"bytecode": "0x60806040523480156200001157600080fd5b5060405162000020906200048b565b604051809103906000f0801580156200003d573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b039290921691909117815560405160019190620000709062000499565b911515825215156020820152604001604051809103906000f0801580156200009c573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b0392831690811790915560005460405163189acdbd60e31b8152921660048301529063c4d66de890602401600060405180830381600087803b158015620000f857600080fd5b505af11580156200010d573d6000803e3d6000fd5b50600092508291506200011d9050565b60405190808252806020026020018201604052801562000147578160200160208202803683370190505b50600054600154604051630b520f0360e31b81529293506001600160a01b0391821692635a907818926200018d9216906045906138409061070890889060040162000525565b600060405180830381600087803b158015620001a857600080fd5b505af1158015620001bd573d6000803e3d6000fd5b50506001546040516001600160a01b039091169250620001de9150620004a7565b6001600160a01b039091168152602001604051809103906000f0801580156200020b573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392831690811790915560005460015460405163cadf8f8560e01b8152908416600482015260248101929092529091169063cadf8f8590604401600060405180830381600087803b1580156200027657600080fd5b505af11580156200028b573d6000803e3d6000fd5b50506001546040516001600160a01b039091169250620002ac9150620004b5565b6001600160a01b039091168152602001604051809103906000f080158015620002d9573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b0392831690811790915560005460015460405163cadf8f8560e01b8152908416600482015260248101929092529091169063cadf8f8590604401600060405180830381600087803b1580156200034457600080fd5b505af115801562000359573d6000803e3d6000fd5b505050506040516200036b90620004c3565b604051809103906000f08015801562000388573d6000803e3d6000fd5b50600480546001600160a01b0319166001600160a01b03928316908117909155600154604051921691620003bc90620004d1565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015620003f0573d6000803e3d6000fd5b50600580546001600160a01b0319166001600160a01b039283169081179091556000805460015460408051848152602081019182905263109e50a960e21b9091529185169463427942a4946200045094929091169290602482016200056c565b600060405180830381600087803b1580156200046b57600080fd5b505af115801562000480573d6000803e3d6000fd5b5050505050620005ac565b6119ee80620029fb83390190565b61569180620043e983390190565b6154808062009a7a83390190565b6155d0806200eefa83390190565b614a2380620144ca83390190565b6113838062018eed83390190565b600081518084526020808501945080840160005b838110156200051a5781516001600160a01b031687529582019590820190600101620004f3565b509495945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906200056190830184620004df565b979650505050505050565b600060018060a01b038087168352808616602084015260806040840152620005986080840186620004df565b915080841660608401525095945050505050565b61243f80620005bc6000396000f3fe60806040523480156200001157600080fd5b50600436106200003a5760003560e01c8063845531a4146200003f578063dfa98ad5146200007b575b600080fd5b620000566200005036600462000495565b620000bc565b604080516001600160a01b039384168152929091166020830152015b60405180910390f35b600154600254600354600554604080516001600160a01b03958616815293851660208501529184169183019190915291909116606082015260800162000072565b60008085858585604051620000d1906200043b565b620000e0949392919062000531565b604051809103906000f080158015620000fd573d6000803e3d6000fd5b509150816001600160a01b0316632f2ff15d836001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000174919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015620001b457600080fd5b505af1158015620001c9573d6000803e3d6000fd5b50505050816001600160a01b0316632f2ff15d836001600160a01b031663d53913936040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000241919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156200028157600080fd5b505af115801562000296573d6000803e3d6000fd5b50505050816001600160a01b0316632f2ff15d836001600160a01b031663e63ab1e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156200034e57600080fd5b505af115801562000363573d6000803e3d6000fd5b50506005546040516001600160a01b03909116925063431f14819150849060019062000396908b908b9060200162000581565b6040516020818303038152906040528888604051602001620003ba92919062000581565b6040516020818303038152906040526040518563ffffffff1660e01b8152600401620003ea9493929190620005e7565b6020604051808303816000875af11580156200040a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000430919062000644565b905094509492505050565b611d93806200067783390190565b60008083601f8401126200045c57600080fd5b50813567ffffffffffffffff8111156200047557600080fd5b6020830191508360208285010111156200048e57600080fd5b9250929050565b60008060008060408587031215620004ac57600080fd5b843567ffffffffffffffff80821115620004c557600080fd5b620004d38883890162000449565b90965094506020870135915080821115620004ed57600080fd5b50620004fc8782880162000449565b95989497509550505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6040815260006200054760408301868862000508565b82810360208401526200055c81858762000508565b979650505050505050565b6000602082840312156200057a57600080fd5b5051919050565b81838237600f60fb1b9101908152600101919050565b6000815180845260005b81811015620005bf57602081850181015186830182015201620005a1565b81811115620005d2576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03851681526000600385106200061457634e487b7160e01b600052602160045260246000fd5b8460208301526080604083015262000630608083018562000597565b82810360608401526200055c818562000597565b6000602082840312156200065757600080fd5b81516001600160a01b03811681146200066f57600080fd5b939250505056fe60806040523480156200001157600080fd5b5060405162001d9338038062001d938339810160408190526200003491620003b5565b8151829082906200004d90600590602085019062000242565b5080516200006390600690602084019062000242565b50506007805460ff19169055506200007d600033620000dd565b620000a97f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000dd565b620000d57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000dd565b50506200045b565b620000e98282620000ed565b5050565b6200010482826200013060201b6200096e1760201c565b60008281526001602090815260409091206200012b918390620009f2620001d0821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200018c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001e7836001600160a01b038416620001f0565b90505b92915050565b60008181526001830160205260408120546200023957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001ea565b506000620001ea565b82805462000250906200041f565b90600052602060002090601f016020900481019282620002745760008555620002bf565b82601f106200028f57805160ff1916838001178555620002bf565b82800160010185558215620002bf579182015b82811115620002bf578251825591602001919060010190620002a2565b50620002cd929150620002d1565b5090565b5b80821115620002cd5760008155600101620002d2565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200031057600080fd5b81516001600160401b03808211156200032d576200032d620002e8565b604051601f8301601f19908116603f01168101908282118183101715620003585762000358620002e8565b816040528381526020925086838588010111156200037557600080fd5b600091505b838210156200039957858201830151818301840152908201906200037a565b83821115620003ab5760008385830101525b9695505050505050565b60008060408385031215620003c957600080fd5b82516001600160401b0380821115620003e157600080fd5b620003ef86838701620002fe565b935060208501519150808211156200040657600080fd5b506200041585828601620002fe565b9150509250929050565b600181811c908216806200043457607f821691505b6020821081036200045557634e487b7160e01b600052602260045260246000fd5b50919050565b611928806200046b6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d5391393146103af578063d547741f146103d6578063dd62ed3e146103e9578063e63ab1e91461042257600080fd5b8063a457c2d714610376578063a9059cbb14610389578063ca15c8731461039c57600080fd5b80639010d07c116100d35780639010d07c1461032857806391d148541461035357806395d89b4114610366578063a217fddf1461036e57600080fd5b806370a08231146102e457806379cc67901461030d5780638456cb591461032057600080fd5b8063313ce567116101665780633f4ba83a116101405780633f4ba83a146102ab57806340c10f19146102b357806342966c68146102c65780635c975abb146102d957600080fd5b8063313ce5671461027657806336568abe14610285578063395093511461029857600080fd5b806318160ddd116101a257806318160ddd1461021957806323b872dd1461022b578063248a9ca31461023e5780632f2ff15d1461026157600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063095ea7b314610206575b600080fd5b6101dc6101d73660046115cf565b610449565b60405190151581526020015b60405180910390f35b6101f9610474565b6040516101e89190611625565b6101dc610214366004611674565b610506565b6004545b6040519081526020016101e8565b6101dc61023936600461169e565b61051e565b61021d61024c3660046116da565b60009081526020819052604090206001015490565b61027461026f3660046116f3565b610542565b005b604051601281526020016101e8565b6102746102933660046116f3565b61056d565b6101dc6102a6366004611674565b6105f0565b61027461062f565b6102746102c1366004611674565b6106d5565b6102746102d43660046116da565b610774565b60075460ff166101dc565b61021d6102f236600461171f565b6001600160a01b031660009081526002602052604090205490565b61027461031b366004611674565b610781565b610274610796565b61033b61033636600461173a565b61083a565b6040516001600160a01b0390911681526020016101e8565b6101dc6103613660046116f3565b610859565b6101f9610882565b61021d600081565b6101dc610384366004611674565b610891565b6101dc610397366004611674565b610923565b61021d6103aa3660046116da565b610931565b61021d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102746103e43660046116f3565b610948565b61021d6103f736600461175c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61021d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216635a05180f60e01b148061046e575061046e82610a07565b92915050565b60606005805461048390611786565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90611786565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b5050505050905090565b600033610514818585610a3c565b5060019392505050565b60003361052c858285610b60565b610537858585610bf2565b506001949350505050565b60008281526020819052604090206001015461055e8133610dcb565b6105688383610e2f565b505050565b6001600160a01b03811633146105e25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105ec8282610e51565b5050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909190610514908290869061062a9087906117d6565b610a3c565b6106597f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610859565b6106cb5760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105d9565b6106d3610e73565b565b6106ff7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610859565b61076a5760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105d9565b6105ec8282610f06565b61077e3382610ff1565b50565b61078c823383610b60565b6105ec8282610ff1565b6107c07f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610859565b6108325760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105d9565b6106d361114b565b600082815260016020526040812061085290836111c6565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461048390611786565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909190838110156109165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d9565b6105378286868403610a3c565b600033610514818585610bf2565b600081815260016020526040812061046e906111d2565b6000828152602081905260409020600101546109648133610dcb565b6105688383610e51565b6109788282610859565b6105ec576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556109ae3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610852836001600160a01b0384166111dc565b60006001600160e01b03198216637965db0b60e01b148061046e57506301ffc9a760e01b6001600160e01b031983161461046e565b6001600160a01b038316610a9e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d9565b6001600160a01b038216610aff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600360209081526040808320938616835292905220546000198114610bec5781811015610bdf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105d9565b610bec8484848403610a3c565b50505050565b6001600160a01b038316610c565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d9565b6001600160a01b038216610cb85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d9565b610cc383838361122b565b6001600160a01b03831660009081526002602052604090205481811015610d3b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105d9565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290610d729084906117d6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dbe91815260200190565b60405180910390a3610bec565b610dd58282610859565b6105ec57610ded816001600160a01b03166014611236565b610df8836020611236565b604051602001610e099291906117ee565b60408051601f198184030181529082905262461bcd60e51b82526105d991600401611625565b610e39828261096e565b600082815260016020526040902061056890826109f2565b610e5b82826113d2565b60008281526001602052604090206105689082611437565b60075460ff16610ebc5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105d9565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610f5c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105d9565b610f686000838361122b565b8060046000828254610f7a91906117d6565b90915550506001600160a01b03821660009081526002602052604081208054839290610fa79084906117d6565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166110515760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105d9565b61105d8260008361122b565b6001600160a01b038216600090815260026020526040902054818110156110d15760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105d9565b6001600160a01b0383166000908152600260205260408120838303905560048054849290611100908490611863565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60075460ff16156111915760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105d9565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ee93390565b6000610852838361144c565b600061046e825490565b60008181526001830160205260408120546112235750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561046e565b50600061046e565b610568838383611476565b6060600061124583600261187a565b6112509060026117d6565b67ffffffffffffffff81111561126857611268611899565b6040519080825280601f01601f191660200182016040528015611292576020820181803683370190505b509050600360fc1b816000815181106112ad576112ad6118af565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106112dc576112dc6118af565b60200101906001600160f81b031916908160001a905350600061130084600261187a565b61130b9060016117d6565b90505b6001811115611383576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061133f5761133f6118af565b1a60f81b828281518110611355576113556118af565b60200101906001600160f81b031916908160001a90535060049490941c9361137c816118c5565b905061130e565b5083156108525760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105d9565b6113dc8282610859565b156105ec576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610852836001600160a01b0384166114dc565b6000826000018281548110611463576114636118af565b9060005260206000200154905092915050565b60075460ff16156105685760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105d9565b600081815260018301602052604081205480156115c5576000611500600183611863565b855490915060009061151490600190611863565b9050818114611579576000866000018281548110611534576115346118af565b9060005260206000200154905080876000018481548110611557576115576118af565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061158a5761158a6118dc565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061046e565b600091505061046e565b6000602082840312156115e157600080fd5b81356001600160e01b03198116811461085257600080fd5b60005b838110156116145781810151838201526020016115fc565b83811115610bec5750506000910152565b60208152600082518060208401526116448160408501602087016115f9565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461166f57600080fd5b919050565b6000806040838503121561168757600080fd5b61169083611658565b946020939093013593505050565b6000806000606084860312156116b357600080fd5b6116bc84611658565b92506116ca60208501611658565b9150604084013590509250925092565b6000602082840312156116ec57600080fd5b5035919050565b6000806040838503121561170657600080fd5b8235915061171660208401611658565b90509250929050565b60006020828403121561173157600080fd5b61085282611658565b6000806040838503121561174d57600080fd5b50508035926020909101359150565b6000806040838503121561176f57600080fd5b61177883611658565b915061171660208401611658565b600181811c9082168061179a57607f821691505b6020821081036117ba57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156117e9576117e96117c0565b500190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516118268160178501602088016115f9565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516118578160288401602088016115f9565b01602801949350505050565b600082821015611875576118756117c0565b500390565b6000816000190483118215151615611894576118946117c0565b500290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816118d4576118d46117c0565b506000190190565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220afe1caf1e01f9ffa2b2ee0f93fd3af8e01926b940b318b54a1ea7d0d8697587864736f6c634300080d0033a2646970667358221220b0adeae4dd49b2f0da3395498efce4adb66088a697b7b65b138d85a4efa20b5264736f6c634300080d0033608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6119708061007e6000396000f3fe608060405234801561001057600080fd5b50600436106101e45760003560e01c80637dce4f811161010f5780638da5cb5b116100a2578063e447cc1d11610071578063e447cc1d1461042a578063f047a2d91461043d578063f2fde38b14610450578063f79a8e631461046357600080fd5b80638da5cb5b146103e05780638ecbd87b146103f1578063ab846f1a14610404578063cadf8f851461041757600080fd5b80638a7ff2f7116100de5780638a7ff2f7146103845780638abe04e9146103975780638b93b3f5146103ba5780638ce93379146103cd57600080fd5b80637dce4f811461032f5780637f0558e41461034257806380f70cba146103555780638369a0f11461037657600080fd5b806342148deb116101875780635a907818116101565780635a907818146102ee578063640b6cc914610301578063715018a61461031457806378707cb81461031c57600080fd5b806342148deb1461028d578063427942a4146102a057806344864b25146102b357806345228235146102c657600080fd5b806319df62ab116101c357806319df62ab14610224578063219644731461025457806325c955c314610267578063325529081461027a57600080fd5b806286d555146101e957806301a06b97146101fe57806317dcabbf14610211575b600080fd5b6101fc6101f7366004611479565b610476565b005b6101fc61020c3660046114bf565b610591565b6101fc61021f3660046114f8565b610610565b6102376102323660046114bf565b61061e565b6040516001600160a01b0390911681526020015b60405180910390f35b6101fc610262366004611570565b610652565b6101fc6102753660046114bf565b61071b565b6101fc610288366004611603565b61072f565b6101fc61029b36600461164e565b6107ab565b6101fc6102ae3660046116a3565b610860565b6101fc6102c13660046114bf565b6109f3565b6102d96102d43660046114bf565b610a5e565b6040805192835260208301919091520161024b565b6101fc6102fc366004611736565b610aa6565b6101fc61030f366004611836565b610b5d565b6101fc610b68565b6101fc61032a366004611877565b610bce565b6101fc61033d366004611603565b610bda565b6101fc610350366004611836565b610c4a565b610368610363366004611836565b610cc0565b60405190815260200161024b565b610237610363366004611836565b6103686103923660046114bf565b610d31565b6103aa6103a53660046114bf565b610d5e565b604051901515815260200161024b565b6101fc6103c83660046114bf565b610d79565b6101fc6103db366004611603565b610de9565b6000546001600160a01b0316610237565b6101fc6103ff3660046114bf565b610e48565b6101fc610412366004611603565b610ebc565b6101fc6104253660046114bf565b610f18565b6101fc6104383660046114bf565b610f50565b6103aa61044b366004611603565b610fc4565b6101fc61045e3660046118ca565b610fdf565b6101fc610471366004611479565b6110aa565b8082118015610488575063ffffffff82105b8015610497575063ffffffff81105b6105045760405162461bcd60e51b815260206004820152603360248201527f5346476f763a20496e76616c6964206c69717569646174696f6e506572696f64604482015272081bdc881c185d1c9a58da585b94195c9a5bd9606a1b60648201526084015b60405180910390fd5b6040805160018152602081018490529081018290526001600160a01b0380851691908616907f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869060600160405180910390a3602082901b811761058985857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78846110b2565b505b50505050565b604080516000808252602082018190528183015290516001600160a01b0383811692908516917f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869181900360600190a361060c82827fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78611165565b5050565b61060c8260008360016110b2565b600061064b83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09610cc0565b9392505050565b8281146106af5760405162461bcd60e51b815260206004820152602560248201527f5346476f763a2061727261797320617265206e6f74207468652073616d65206c6044820152640cadccee8d60db1b60648201526084016104fb565b60005b8181101561071357610703868686848181106106d0576106d06118e7565b90506020020160208101906106e591906118ca565b8585858181106106f7576106f76118e7565b90506020020135610c4a565b61070c816118fd565b90506106b2565b505050505050565b61060c82600061072a84611226565b611165565b60408051600181526001600160a01b03838116602083015280851692908616917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a36107a683837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09846112b9565b505050565b826107b58161136e565b60005b8281101561058957846001600160a01b031663787afde78585848181106107e1576107e16118e7565b90506020020160208101906107f691906118ca565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561083757600080fd5b505af115801561084b573d6000803e3d6000fd5b5050505080610859906118fd565b90506107b8565b8461086a8161136e565b6001600160a01b038516156108d5576040516311a5465560e21b81526001600160a01b038681166004830152871690634695195490602401600060405180830381600087803b1580156108bc57600080fd5b505af11580156108d0573d6000803e3d6000fd5b505050505b60005b8381101561098057866001600160a01b03166306cecba8868684818110610901576109016118e7565b905060200201602081019061091691906118ca565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561095757600080fd5b505af115801561096b573d6000803e3d6000fd5b5050505080610979906118fd565b90506108d8565b506001600160a01b03821615610713576040516354fbc49360e01b81526001600160a01b0383811660048301528716906354fbc49390602401600060405180830381600087803b1580156109d357600080fd5b505af11580156109e7573d6000803e3d6000fd5b50505050505050505050565b816109fd8161136e565b604051631ca0c40360e21b81526001600160a01b038381166004830152841690637283100c906024015b600060405180830381600087803b158015610a4157600080fd5b505af1158015610a55573d6000803e3d6000fd5b50505050505050565b6000806000610a8e85857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78610cc0565b63ffffffff602082901c811697911695509350505050565b6001600160a01b038516610abc57610abc611924565b6002546001600160a01b031615610ad557610ad5611924565b600280546001600160a01b0319166001600160a01b038716908117909155610aff9060008661072f565b610b0c8560008585610476565b60005b8151811015610713576002548251610b4d916001600160a01b031690600090859085908110610b4057610b406118e7565b6020026020010151610ebc565b610b56816118fd565b9050610b0f565b6107a6838383611165565b6000546001600160a01b03163314610bc25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104fb565b610bcc60006113a5565b565b61058b848484846112b9565b610bef8383610be8846113f5565b60006110b2565b60408051600181526001600160a01b038381166020830152600092820192909252818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d27906060015b60405180910390a3505050565b6040805160018152602081018390526001600160a01b0380851692908616917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a36107a683837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4846110b2565b6001600160a01b03808416600090815260016020908152604080832093861683529281528282208483529052908120805460ff16610d2557506001600160a01b0384166000908152600160209081526040808320838052825280832085845290915290205b60010154949350505050565b600061064b83837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4610cc0565b6000610d6f83600061036385611226565b6001149392505050565b803b80610dd25760405162461bcd60e51b815260206004820152602160248201527f5346476f763a20666163746f7279206d757374206265206120636f6e747261636044820152601d60fa1b60648201526084016104fb565b5061060c826000610de284611226565b60016110b2565b6040805160008082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d279060600160405180910390a36107a6838361072a846113f5565b60408051600080825260208201526001600160a01b0380841692908516917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a361060c82827feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4611165565b610eca8383610de2846113f5565b6040805160018082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d2790606001610c3d565b81610f228161136e565b6040516315a024e160e01b81526001600160a01b0383811660048301528416906315a024e190602401610a27565b60408051600080825260208201526001600160a01b0380841692908516917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a361060c82827f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09611165565b6000610fd48484610363856113f5565b600114949350505050565b6000546001600160a01b031633146110395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104fb565b6001600160a01b03811661109e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104fb565b6110a7816113a5565b50565b61058b848484845b836110bc8161136e565b60408051848152600160208201529081018390526001600160a01b0380861691908716907f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3909060600160405180910390a350604080518082018252600180825260208083019485526001600160a01b039788166000908152828252848120979098168852958652828720948752939094529093209151825460ff19169015151782559151910155565b8261116f8161136e565b826001600160a01b0316846001600160a01b03167f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e390846000806040516111c8939291909283529015156020830152604082015260600190565b60405180910390a350604080518082018252600080825260208083018281526001600160a01b03978816835260018083528584209790981683529581528382209482529390935291209051815460ff19169015151781559051910155565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b836112c38161136e565b60408051848152600160208201526001600160a01b03848116828401529151868316928816917f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e390919081900360600190a35060408051808201825260018082526001600160a01b03938416602080840191825297851660009081528289528481209790951685529587528284209484529390955290209251835460ff19169015151783559051910155565b6002546001600160a01b0382811691161461138b5761138b611924565b6000546001600160a01b031633146110a7576110a7611924565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c00161129c565b6001600160a01b03811681146110a757600080fd5b6000806000806080858703121561148f57600080fd5b843561149a81611464565b935060208501356114aa81611464565b93969395505050506040820135916060013590565b600080604083850312156114d257600080fd5b82356114dd81611464565b915060208301356114ed81611464565b809150509250929050565b6000806040838503121561150b57600080fd5b823561151681611464565b946020939093013593505050565b60008083601f84011261153657600080fd5b50813567ffffffffffffffff81111561154e57600080fd5b6020830191508360208260051b850101111561156957600080fd5b9250929050565b60008060008060006060868803121561158857600080fd5b853561159381611464565b9450602086013567ffffffffffffffff808211156115b057600080fd5b6115bc89838a01611524565b909650945060408801359150808211156115d557600080fd5b506115e288828901611524565b969995985093965092949392505050565b80356115fe81611464565b919050565b60008060006060848603121561161857600080fd5b833561162381611464565b9250602084013561163381611464565b9150604084013561164381611464565b809150509250925092565b60008060006040848603121561166357600080fd5b833561166e81611464565b9250602084013567ffffffffffffffff81111561168a57600080fd5b61169686828701611524565b9497909650939450505050565b6000806000806000608086880312156116bb57600080fd5b85356116c681611464565b945060208601356116d681611464565b9350604086013567ffffffffffffffff8111156116f257600080fd5b6116fe88828901611524565b909450925050606086013561171281611464565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a0868803121561174e57600080fd5b853561175981611464565b945060208681013561176a81611464565b94506040870135935060608701359250608087013567ffffffffffffffff8082111561179557600080fd5b818901915089601f8301126117a957600080fd5b8135818111156117bb576117bb611720565b8060051b604051601f19603f830116810181811085821117156117e0576117e0611720565b60405291825284820192508381018501918c8311156117fe57600080fd5b938501935b8285101561182357611814856115f3565b84529385019392850192611803565b8096505050505050509295509295909350565b60008060006060848603121561184b57600080fd5b833561185681611464565b9250602084013561186681611464565b929592945050506040919091013590565b6000806000806080858703121561188d57600080fd5b843561189881611464565b935060208501356118a881611464565b92506040850135915060608501356118bf81611464565b939692955090935050565b6000602082840312156118dc57600080fd5b813561064b81611464565b634e487b7160e01b600052603260045260246000fd5b60006001820161191d57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052600160045260246000fdfea2646970667358221220e381a3c49e2499ccd663a8e3956cf1c796212017bb90f5f0d433392c3914d8a664736f6c634300080d0033610100604052600160c052622dc6c060e0523480156200001e57600080fd5b506040516200569138038062005691833981016040819052620000419162000068565b901515608052151560a052620000a0565b805180151581146200006357600080fd5b919050565b600080604083850312156200007c57600080fd5b620000878362000052565b9150620000976020840162000052565b90509250929050565b60805160a05160c05160e05161556a620001276000396000818161037101528181612d060152612d940152600081816107020152612b4301526000818161058501528181611f3901526129c00152600081816106b9015281816107aa01528181610bd0015281816112a60152818161141d0152818161157c01526128c3015261556a6000f3fe608060405234801561001057600080fd5b50600436106102a05760003560e01c806374041e0211610167578063bbe4fd50116100ce578063cd312ec411610087578063cd312ec4146106b4578063e8dccb7d146106db578063f213bb02146106fd578063f2e55caf14610724578063f37330521461072c578063f9f522f41461073f57600080fd5b8063bbe4fd5014610642578063bced3ddc14610648578063bd1c448b1461065b578063bf4287341461066e578063c4d66de814610681578063c56a069d1461069457600080fd5b8063a5dbbbcd11610120578063a5dbbbcd146105a7578063ad3915c8146105ba578063b6d200de146105cd578063b724211e146105e0578063ba48b5f8146105f3578063bb84cfa11461060657600080fd5b806374041e0214610521578063768fabb014610534578063787afde7146105475780638ca484841461055a578063989b0c3e1461056d5780639d297e301461058057600080fd5b8063469519541161020b578063572b6c05116101c4578063572b6c05146104b1578063670e77e3146104c45780636ad3ca7d146104d75780636b4f3335146104ea5780637283100c146104fd578063731aed6e1461051057600080fd5b80634695195414610422578063486ff0cd1461043557806350d75d251461045357806352d1902d1461045b57806354fbc4931461048b57806357121e0c1461049e57600080fd5b8063289b3c0d1161025d578063289b3c0d1461034157806333d608f11461036c57806339255d5b146103ab5780633ca3ad4e146103be5780633f6c923a146103e15780634329d2931461040157600080fd5b806306cecba8146102a55780630792f20a146102ba57806313349046146102e357806315a024e1146103085780631e6d0a841461031b5780631e855cf31461032e575b600080fd5b6102b86102b33660046142d1565b61076f565b005b6102cd6102c8366004614336565b61094c565b6040516102da91906143de565b60405180910390f35b6102f66102f13660046142d1565b610a44565b60405160ff90911681526020016102da565b6102b86103163660046142d1565b610a67565b6102cd6103293660046143ff565b610d33565b6102cd61033c366004614580565b610fa1565b6000546201000090046001600160a01b03165b6040516001600160a01b0390911681526020016102da565b6103937f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b0390911681526020016102da565b6102cd6103b93660046145cf565b610fb5565b6103d16103cc3660046142d1565b610fcb565b60405190151581526020016102da565b6103f46103ef366004614644565b610fe8565b6040516102da9190614678565b61041461040f366004614759565b610ff9565b6040516102da929190614805565b6102b86104303660046142d1565b611274565b604080518082019091526002815261763160f01b60208201526102cd565b6103546113ac565b7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba745b6040519081526020016102da565b6102b86104993660046142d1565b6113db565b6102b86104ac3660046142d1565b61165c565b6103d16104bf3660046142d1565b6117b2565b6102b86104d236600461482a565b61183c565b6102b86104e536600461482a565b61184d565b6103d16104f83660046142d1565b611857565b6102b861050b3660046142d1565b61187b565b6003546001600160a01b0316610354565b6102cd61052f3660046143ff565b611922565b6102cd610542366004614943565b611a9c565b6102b86105553660046142d1565b611c54565b6103d16105683660046142d1565b611d96565b6102cd61057b3660046149be565b611e5b565b6103d17f000000000000000000000000000000000000000000000000000000000000000081565b61047d6105b5366004614a09565b611eee565b6102b86105c8366004614a2b565b611f37565b6103546105db366004614a2b565b611fc2565b6102cd6105ee366004614a44565b612028565b6102cd610601366004614aa0565b6120e8565b6103d1610614366004614b22565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b4261047d565b61047d610656366004614a09565b6124b4565b6102b8610669366004614b5b565b6124fc565b6103d161067c366004614ba6565b6126a1565b6102b861068f3660046142d1565b6126e2565b6106a76106a2366004614a2b565b6127be565b6040516102da9190614be7565b6103d17f000000000000000000000000000000000000000000000000000000000000000081565b6103d16106e9366004614a2b565b600090815260026020526040902054151590565b61047d7f000000000000000000000000000000000000000000000000000000000000000081565b6103546128a8565b6102b861073a366004614c34565b61296e565b61075261074d3660046142d1565b612ad0565b6040805193151584529115156020840152908201526060016102da565b6000546201000090046001600160a01b031633146107a85760405162461bcd60e51b815260040161079f90614c60565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000156107e65760405162461bcd60e51b815260040161079f90614c97565b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084a9190614cc3565b60008181526002602052604081205491925081900361087b5760405162461bcd60e51b815260040161079f90614cdc565b600060016108898184614d34565b8154811061089957610899614d4b565b6000918252602090912001546040516311a5465560e21b81526001600160a01b03868116600483015290911691508190634695195490602401600060405180830381600087803b1580156108ec57600080fd5b505af1158015610900573d6000803e3d6000fd5b5050604080518681526001600160a01b03881660208201527f9279aa773f2b588996032d8de89911555039f28b13a11a7c17074330bc082d9a935001905060405180910390a150505050565b606061095733611d96565b6109735760405162461bcd60e51b815260040161079f90614d61565b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109b59250839150612b1f9050565b6109c1576109c1614da4565b6000610a0287878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe892505050565b9050848160e00151610a149190614dba565b60e0820152610100810151610a2a908590614dd2565b610100820152610a3981612b3f565b979650505050505050565b6001600160a01b03811660009081526004602052604081205460ff165b92915050565b6000546201000090046001600160a01b03163314610a975760405162461bcd60e51b815260040161079f90614c60565b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afb9190614cc3565b60008181526002602052604090205490915015610b695760405162461bcd60e51b815260206004820152602660248201527f53463a2061677265656d656e7420636c61737320616c726561647920726567696044820152651cdd195c995960d21b606482015260840161079f565b60015461010011610bcc5760405162461bcd60e51b815260206004820152602760248201527f53463a20737570706f727420757020746f203235362061677265656d656e7420604482015266636c617373657360c81b606482015260840161079f565b60007f0000000000000000000000000000000000000000000000000000000000000000610c86576000604051610c0190614254565b604051809103906000f080158015610c1d573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03868116600483015291925090821690634a0687ef90602401600060405180830381600087803b158015610c6557600080fd5b505af1158015610c79573d6000803e3d6000fd5b5050505080915050610c89565b50815b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0384166001600160a01b0319909116179055546000838152600260205260409081902091909155517f878135063a6cfb3bc333e534b1fdc83f4f12221cad6705c31c0567048a8bd3d190610d2690849086909182526001600160a01b0316602082015260400190565b60405180910390a1505050565b6060610d3e33611d96565b610d5a5760405162461bcd60e51b815260040161079f90614d61565b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d9c9250839150612b1f9050565b610da857610da8614da4565b600080610e228a6000898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c9081908401838280828437600092019190915250612cc992505050565b915091508115610f5a57610e3581612e90565b15610ec65780806020019051810190610e4e9190614e58565b9350610e5984612b1f565b610ec15786610e7a5760405162461bcd60e51b815260040161079f90614e8c565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929650610ec192508c915060149050612ee4565b610f94565b86610f135760405162461bcd60e51b815260206004820152601f60248201527f53463a204150505f52554c455f4354585f49535f4d414c464f524d4154454400604482015260640161079f565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929650610ec192508c915060169050612ee4565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505050505b5050509695505050505050565b6060610fae338484612f59565b9392505050565b6060610fc333858585613237565b949350505050565b6001600160a01b0316600090815260046020526040902054151590565b610ff0614261565b610a618261338a565b60608083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061103e9250839150612b1f9050565b61108a5760405162461bcd60e51b815260206004820152601d60248201527f53463a204150505f52554c455f4354585f49535f4e4f545f56414c4944000000604482015260640161079f565b8961109481611d96565b6110b05760405162461bcd60e51b815260040161079f90614ec3565b60006110f187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe892505050565b6101208101519091506001600160a01b031633146111695760405162461bcd60e51b815260206004820152602f60248201527f53463a2063616c6c41677265656d656e7457697468436f6e746578742066726f60448201526e6d2077726f6e67206164647265737360881b606482015260840161079f565b60608101805133909152604080516020601f8c018190048102820181019092528a8152908b908b908190840183828082843760009201919091525050505060a08301526111b582612b3f565b955060006111fb8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613455915050565b96509050801561125a57858060200190518101906112199190614e58565b965061122487612b1f565b61123057611230614da4565b61123987610fe8565b6001600160a01b0383166060820152925061125383612b3f565b9650611263565b6112638661353a565b505050505097509795505050505050565b6000546201000090046001600160a01b031633146112a45760405162461bcd60e51b815260040161079f90614c60565b7f0000000000000000000000000000000000000000000000000000000000000000156112e25760405162461bcd60e51b815260040161079f90614c97565b806001600160a01b031663cd312ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113449190614f05565b156113a05760405162461bcd60e51b815260206004820152602660248201527f53463a2063616e6e6f7420646f776e677261646520746f206e6f6e2075706772604482015265616461626c6560d01b606482015260840161079f565b6113a981613645565b50565b60006113d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000546201000090046001600160a01b0316331461140b5760405162461bcd60e51b815260040161079f90614c60565b6003546001600160a01b031661157a577f00000000000000000000000000000000000000000000000000000000000000006114f157600060405161144e90614254565b604051809103906000f08015801561146a573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03848116600483015291925090821690634a0687ef90602401600060405180830381600087803b1580156114b257600080fd5b505af11580156114c6573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b0394909416939093179092555061150d9050565b600380546001600160a01b0319166001600160a01b0383161790555b600360009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561155d57600080fd5b505af1158015611571573d6000803e3d6000fd5b50505050611618565b7f0000000000000000000000000000000000000000000000000000000000000000156115b85760405162461bcd60e51b815260040161079f90614c97565b6003546040516311a5465560e21b81526001600160a01b03838116600483015290911690634695195490602401600060405180830381600087803b1580156115ff57600080fd5b505af1158015611613573d6000803e3d6000fd5b505050505b6003546040516001600160a01b0390911681527fce13a9895a1719ad4493b2ac1a9bfb36070566161abab408e7ecbe586da8d499906020015b60405180910390a150565b3361166681610fcb565b6116b25760405162461bcd60e51b815260206004820152601860248201527f53463a2073656e646572206973206e6f7420616e206170700000000000000000604482015260640161079f565b6116bb82610fcb565b6117075760405162461bcd60e51b815260206004820152601860248201527f53463a20746172676574206973206e6f7420616e206170700000000000000000604482015260640161079f565b61171082610a44565b60ff1661171c82610a44565b60ff16116117805760405162461bcd60e51b815260206004820152602b60248201527f53463a20736f75726365206170702073686f756c64206861766520686967686560448201526a1c88185c1c081b195d995b60aa1b606482015260840161079f565b503360009081526005602090815260408083206001600160a01b0394909416835292905220805460ff19166001179055565b600080546201000090046001600160a01b03166380f70cba30836117d58661387f565b6040518463ffffffff1660e01b81526004016117f393929190614f22565b602060405180830381865afa158015611810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118349190614cc3565b151592915050565b6113a9611847613907565b8261396f565b6113a9338261396f565b6001600160a01b038116600090815260046020526040812054618000161515610a61565b6000546201000090046001600160a01b031633146118ab5760405162461bcd60e51b815260040161079f90614c60565b600054604080516001600160a01b03620100009093048316815291831660208301527f13abda02e63c790d0e2818b251282cfe5cbe0a8abd69c54bf5d2260c0907bd2e910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b606061192d33611d96565b6119495760405162461bcd60e51b815260040161079f90614d61565b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061198b9250839150612b1f9050565b61199757611997614da4565b600080611a118a6001898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c9081908401838280828437600092019190915250612cc992505050565b915091508115610f9457611a2481612e90565b15611a445780806020019051810190611a3d9190614e58565b9350610f94565b86611a915760405162461bcd60e51b815260206004820152601f60248201527f53463a204150505f52554c455f4354585f49535f4d414c464f524d4154454400604482015260640161079f565b610f948a6016612ee4565b6060611aa733611d96565b611ac35760405162461bcd60e51b815260040161079f90614d61565b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b059250839150612b1f9050565b611b1157611b11614da4565b6000611b5289898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe892505050565b9050611b618160600151610fcb565b15611bf65760608101516001600160a01b039081166000908152600560209081526040808320938b168352929052205460ff16611bf65760405162461bcd60e51b815260206004820152602d60248201527f53463a204150505f52554c455f434f4d504f534954455f4150505f49535f4e4f60448201526c1517d5d2125511531254d51151609a1b606482015260840161079f565b805181611c0282614f46565b60ff169052506003602082015260c08101869052600060e082015261010081018590526001600160a01b038088166101208301528416610140820152611c4781612b3f565b9998505050505050505050565b6000546201000090046001600160a01b03163314611c845760405162461bcd60e51b815260040161079f90614c60565b60035460408051634a3852d960e11b815290516000926001600160a01b031691639470a5b29160048083019260209291908290030181865afa158015611cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf29190614f65565b6040516311a5465560e21b81526001600160a01b03808316600483015291925090831690634695195490602401600060405180830381600087803b158015611d3957600080fd5b505af1158015611d4d573d6000803e3d6000fd5b50506040516001600160a01b038481168252851692507f840acbd291b38534819f47f875839277e502f40e1c7bfea2c5fc2c8017442cd391506020015b60405180910390a25050565b600080826001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190614cc3565b6000818152600260205260409020549091508015801590610fc357506001600160a01b0384166001611e2d8184614d34565b81548110611e3d57611e3d614d4b565b6000918252602090912001546001600160a01b031614949350505050565b6060611e6633611d96565b611e825760405162461bcd60e51b815260040161079f90614d61565b6000611ec385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe892505050565b905082816101000151611ed69190614dd2565b610100820152611ee581612b3f565b95945050505050565b600081815260026020526040812054808203611f1c5760405162461bcd60e51b815260040161079f90614cdc565b611f27600182614d34565b6001901b19841691505092915050565b7f000000000000000000000000000000000000000000000000000000000000000015611fb65760405162461bcd60e51b815260206004820152602860248201527f53463a2061707020726567697374726174696f6e2072657175697265732070656044820152673936b4b9b9b4b7b760c11b606482015260840161079f565b6113a981336001613db3565b600081815260026020526040812054808203611ff05760405162461bcd60e51b815260040161079f90614cdc565b6001611ffc8183614d34565b8154811061200c5761200c614d4b565b6000918252602090912001546001600160a01b03169392505050565b606061203333611d96565b61204f5760405162461bcd60e51b815260040161079f90614d61565b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506120919250839150612b1f9050565b61209d5761209d614da4565b6120a78484612ee4565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061212c9250839150612b1f9050565b6121785760405162461bcd60e51b815260206004820152601d60248201527f53463a204150505f52554c455f4354585f49535f4e4f545f56414c4944000000604482015260640161079f565b6001600160a01b0387166000908152600460205260409020548790806121d65760405162461bcd60e51b8152602060048201526013602482015272053463a206e6f7420612073757065722061707606c1b604482015260640161079f565b61800081161561221c5760405162461bcd60e51b815260206004820152601160248201527014d18e88185c1c081a5cc81a985a5b1959607a1b604482015260640161079f565b87878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061225d9150839050613faa565b90506001600160e01b031981166330d9c91560e01b148061228e57506001600160e01b0319811663d86ed3e560e01b145b806122a957506001600160e01b03198116630221347d60e61b145b806122c457506001600160e01b0319811663d86ed3e560e01b145b806122df57506001600160e01b03198116635f9e7d7760e01b145b806122fa57506001600160e01b0319811663d86ed3e560e01b145b156123175760405162461bcd60e51b815260040161079f90614f82565b600061235889898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe892505050565b6101208101519091506001600160a01b031633146123d05760405162461bcd60e51b815260206004820152602f60248201527f53463a2063616c6c417070416374696f6e57697468436f6e746578742066726f60448201526e6d2077726f6e67206164647265737360881b606482015260840161079f565b606081018051339091526123e382612b3f565b975060008061242a8f8f8f8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f9250613455915050565b91509150811561249957808060200190518101906124489190614e58565b99506124538a612b1f565b61246f5760405162461bcd60e51b815260040161079f90614e8c565b6124788a610fe8565b6001600160a01b0384166060820152935061249284612b3f565b99506124a2565b6124a28161353a565b50505050505050505095945050505050565b6000818152600260205260408120548082036124e25760405162461bcd60e51b815260040161079f90614cdc565b6124ed600182614d34565b6001901b841791505092915050565b600061253e3284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061400692505050565b6000805460405163407b865d60e11b81529293506201000090046001600160a01b0316916380f70cba91612579913091908690600401614f22565b602060405180830381865afa158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190614cc3565b6001146126095760405162461bcd60e51b815260206004820152601c60248201527f53463a20696e76616c696420726567697374726174696f6e206b657900000000604482015260640161079f565b60008181526007602052604090205460ff16156126725760405162461bcd60e51b815260206004820152602160248201527f53463a20726567697374726174696f6e206b657920616c7265616479207573656044820152601960fa1b606482015260840161079f565b6000818152600760205260409020805460ff1916600190811790915561269b9085903390613db3565b50505050565b6000610fae83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b1f92505050565b600054610100900460ff166126fd5760005460ff1615612701565b303b155b6127645760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161079f565b600054610100900460ff16158015612786576000805461ffff19166101011790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905580156127ba576000805461ff00191690555b5050565b60606000806001805490506001600160401b038111156127e0576127e0614495565b604051908082528060200260200182016040528015612809578160200160208202803683370190505b50925060009050600091505b6001548210156128a0576001821b841615612890576001828154811061283d5761283d614d4b565b6000918252602090912001546001600160a01b0316838261285d81614fc6565b93508151811061286f5761286f614d4b565b60200260200101906001600160a01b031690816001600160a01b0316815250505b61289982614fc6565b9150612815565b825250919050565b6003546000906001600160a01b03166128c15750600090565b7f0000000000000000000000000000000000000000000000000000000000000000156128f757506003546001600160a01b031690565b600360009054906101000a90046001600160a01b03166001600160a01b03166350d75d256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561294a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d69190614f65565b333b806129bd5760405162461bcd60e51b815260206004820152601e60248201527f53463a20666163746f7279206d757374206265206120636f6e74726163740000604482015260640161079f565b507f000000000000000000000000000000000000000000000000000000000000000015612ac45760006129ef33614039565b6000805460405163407b865d60e11b81529293509091620100009091046001600160a01b0316906380f70cba90612a2e90309085908790600401614f22565b602060405180830381865afa158015612a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6f9190614cc3565b600114905080612ac15760405162461bcd60e51b815260206004820152601f60248201527f53463a20617574686f72697a656420666163746f727920726571756972656400604482015260640161079f565b50505b6127ba81836000613db3565b6001600160a01b038116600090815260046020908152604080832081519283019091525480825215801592918291612b1757805161800081161515935064ff000000001691505b509193909250565b60008151600014158015610a615750600654825160208401201492915050565b60607f0000000000000000000000000000000000000000000000000000000000000000826000015160ff161115612bc35760405162461bcd60e51b815260206004820152602260248201527f53463a204150505f52554c455f4d41585f4150505f4c4556454c5f5245414348604482015261115160f21b606482015260840161079f565b815160208084015160009260ff1664ff000000009190921b1617905060006080612bf08560e001516140b3565b6001600160801b0316901b612c088560c001516140b3565b6001600160801b0316179050818460400151856060015186608001518760a00151604051602001612c3d959493929190614fdf565b60408051601f1981840301815282825261010087015161012088015161014089015160208601879052938501919091526001600160a01b03908116606085015290911660808301529060a00160408051601f1981840301815290829052612ca79291602001614805565b60408051601f1981840301815291905280516020820120600655949350505050565b600060606001600160a01b038716612ce357612ce3614da4565b612ced8484614120565b935060005a90508615612d8857876001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160401b031686604051612d3c9190615020565b6000604051808303818686fa925050503d8060008114612d78576040519150601f19603f3d011682016040523d82523d6000602084013e612d7d565b606091505b509093509150612e14565b876001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160401b031686604051612dca9190615020565b60006040518083038160008787f1925050503d8060008114612e08576040519150601f19603f3d011682016040523d82523d6000602084013e612e0d565b606091505b5090935091505b82612e8557612e24603f8261503c565b5a1115612e495785612e3e57612e398261353a565b612e85565b612e3988600a612ee4565b60405162461bcd60e51b815260206004820152601160248201527053463a206e656564206d6f72652067617360781b604482015260640161079f565b509550959350505050565b6000604082511015612ea457506000919050565b602082810151906000908214612ebe575060009392505050565b506040830151612ecd8161421b565b612ed8906040614dba565b84511492505050919050565b6001600160a01b0382166000908152600460205260408120546180001690036127ba576001600160a01b038216600081815260046020526040908190208054618000179055517fbe3aa33bd245135e4e26b223d79d14ea479a47bff09f2b03c53838af1edbb14b90611d8a9084815260200190565b60065460609015612fac5760405162461bcd60e51b815260206004820152601d60248201527f53463a204150505f52554c455f4354585f49535f4e4f545f434c45414e000000604482015260640161079f565b6001600160a01b03831660009081526004602052604090205483908061300a5760405162461bcd60e51b8152602060048201526013602482015272053463a206e6f7420612073757065722061707606c1b604482015260640161079f565b6180008116156130505760405162461bcd60e51b815260206004820152601160248201527014d18e88185c1c081a5cc81a985a5b1959607a1b604482015260640161079f565b83600061305c82613faa565b90506001600160e01b031981166330d9c91560e01b148061308d57506001600160e01b0319811663d86ed3e560e01b145b806130a857506001600160e01b03198116630221347d60e61b145b806130c357506001600160e01b0319811663d86ed3e560e01b145b806130de57506001600160e01b03198116635f9e7d7760e01b145b806130f957506001600160e01b0319811663d86ed3e560e01b145b156131165760405162461bcd60e51b815260040161079f90614f82565b60006131c26040518061016001604052806131308c610fcb565b61313b57600061313e565b60015b60ff168152600260208201526040014281526020018b6001600160a01b03168152602001600060e01b6001600160e01b03191681526020016040518060200160405280600081525081526020016000815260200160008152602001600081526020018a6001600160a01b0316815260200160006001600160a01b0316815250612b3f565b905060006131d1898984613455565b97509050801561321b57868060200190518101906131ef9190614e58565b91506131fa82612b1f565b6132165760405162461bcd60e51b815260040161079f90614e8c565b613224565b6132248761353a565b5050600060065550929695505050505050565b6006546060901561328a5760405162461bcd60e51b815260206004820152601d60248201527f53463a204150505f52554c455f4354585f49535f4e4f545f434c45414e000000604482015260640161079f565b8361329481611d96565b6132b05760405162461bcd60e51b815260040161079f90614ec3565b60006132bb85613faa565b905060006133576040518061016001604052806132d78b610fcb565b6132e25760006132e5565b60015b60ff168152600160208201526040014281526020018a6001600160a01b03168152602001846001600160e01b031916815260200187815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815250612b3f565b90506000613366888884613455565b9550905080613378576133788561353a565b50506000600655509095945050505050565b613392614261565b606080838060200190518101906133a9919061505e565b815191935091506000906133c690840160209081019085016150b7565b60a08901526001600160e01b03191660808801526001600160a01b031660608701526040860152602081811c600f168187015260ff909116855282516000925061341791908401810190840161513b565b6001600160a01b03908116610140890152166101208701526101008601526001600160801b03811660c086015260801c60e085015250919392505050565b600060606001600160a01b03851661346f5761346f614da4565b6134798484614120565b9350846001600160a01b0316846040516134939190615020565b6000604051808303816000865af19150503d80600081146134d0576040519150601f19603f3d011682016040523d82523d6000602084013e6134d5565b606091505b50909250905081156135325760008151116135325760405162461bcd60e51b815260206004820152601960248201527f53463a204150505f52554c455f4354585f49535f454d50545900000000000000604482015260640161079f565b935093915050565b60048151101561358c5760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a20746172676574207265766572742829000000000000604482015260640161079f565b602081015163b1b7848f60e01b6001600160e01b031982160161363c5760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b815291929161079f918491016143de565b81518060208401fd5b600061366f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036136c55760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c65000000604482015260640161079f565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613703573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137279190614cc3565b7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba74146137a15760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b606482015260840161079f565b6001600160a01b03811630036137f95760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f7000000000000000604482015260640161079f565b613821817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba74604080519182526001600160a01b038416602083015201611651565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b60006018361080159061391e575061391e336117b2565b6139625760405162461bcd60e51b81526020600482015260156024820152742737ba103a393ab9ba32b2103337b93bb0b93232b960591b604482015260640161079f565b5060131936013560601c90565b60005b8151811015613dae57600082828151811061398f5761398f614d4b565b6020026020010151600001519050600163ffffffff168163ffffffff1603613a6f576000808484815181106139c6576139c6614d4b565b6020026020010151604001518060200190518101906139e59190615186565b915091508484815181106139fb576139fb614d4b565b6020026020010151602001516001600160a01b03166362aa52878784846040518463ffffffff1660e01b8152600401613a3693929190614f22565b600060405180830381600087803b158015613a5057600080fd5b505af1158015613a64573d6000803e3d6000fd5b505050505050613d9b565b60011963ffffffff821601613b55576000806000858581518110613a9557613a95614d4b565b602002602001015160400151806020019051810190613ab491906151b4565b925092509250858581518110613acc57613acc614d4b565b6020908102919091018101510151604051630b682aeb60e11b81526001600160a01b0389811660048301528581166024830152848116604483015260648201849052909116906316d055d690608401600060405180830381600087803b158015613b3557600080fd5b505af1158015613b49573d6000803e3d6000fd5b50505050505050613d9b565b60641963ffffffff821601613c2557828281518110613b7657613b76614d4b565b6020026020010151602001516001600160a01b031663ca78946485858581518110613ba357613ba3614d4b565b602002602001015160400151806020019051810190613bc29190614cc3565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015613c0857600080fd5b505af1158015613c1c573d6000803e3d6000fd5b50505050613d9b565b60651963ffffffff821601613c7357828281518110613c4657613c46614d4b565b6020026020010151602001516001600160a01b031663245887fc85858581518110613ba357613ba3614d4b565b60c81963ffffffff821601613ceb57600080848481518110613c9757613c97614d4b565b602002602001015160400151806020019051810190613cb6919061505e565b91509150613ce386868681518110613cd057613cd0614d4b565b6020026020010151602001518484613237565b505050613d9b565b60c91963ffffffff821601613d4557613d3f84848481518110613d1057613d10614d4b565b602002602001015160200151858581518110613d2e57613d2e614d4b565b602002602001015160400151612f59565b50613d9b565b60405162461bcd60e51b815260206004820152602560248201527f53463a20756e6b6e6f776e2062617463682063616c6c206f7065726174696f6e604482015264207479706560d81b606482015260840161079f565b5080613da681614fc6565b915050613972565b505050565b323303613e0e5760405162461bcd60e51b8152602060048201526024808201527f53463a204150505f52554c455f4e4f5f524547495354524154494f4e5f464f526044820152635f454f4160e01b606482015260840161079f565b8015613e7c57813b8015613e7a5760405162461bcd60e51b815260206004820152602d60248201527f53463a204150505f52554c455f524547495354524154494f4e5f4f4e4c595f4960448201526c272fa1a7a729aa292aa1aa27a960991b606482015260840161079f565b505b64ff000080ff198316158015613e94575060ff831615155b8015613ea257506180008316155b613eee5760405162461bcd60e51b815260206004820152601760248201527f53463a20696e76616c696420636f6e66696720776f7264000000000000000000604482015260640161079f565b6001600160a01b03821660009081526004602052604090205415613f545760405162461bcd60e51b815260206004820152601a60248201527f53463a2061707020616c72656164792072656769737465726564000000000000604482015260640161079f565b60408051602080820183528582526001600160a01b038516600081815260049092528382209251909255915190917f0d540ad8f39e07d19909687352b9fa017405d93c91a6760981fbae9cf28bfef791a2505050565b6000600482511015613ffe5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e76616c69642063616c6c446174610000000000604482015260640161079f565b506020015190565b6000828260405160200161401b9291906151f7565b60405160208183030381529060405280519060200120905092915050565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c0016138ea565b60006001600160801b0382111561411c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161079f565b5090565b81518083015160609190801561418d5760405162461bcd60e51b815260206004820152602c60248201527f53463a20706c61636572686f6c646572206374782073686f756c64206861766560448201526b040f4cae4de40d8cadccee8d60a31b606482015260840161079f565b50601f19810184528251849084816141a48161421b565b6141ae9190614d34565b6001600160401b038111156141c5576141c5614495565b6040519080825280601f01601f1916602001820160405280156141ef576020820181803683370190505b50604051602001614203949392919061527c565b60405160208183030381529060405291505092915050565b60008082601f161161422e576000614231565b60015b60ff1661423f60208461503c565b6142499190614dba565b610a619060206152cb565b61024a806152eb83390190565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6001600160a01b03811681146113a957600080fd5b6000602082840312156142e357600080fd5b8135610fae816142bc565b60008083601f84011261430057600080fd5b5081356001600160401b0381111561431757600080fd5b60208301915083602082850101111561432f57600080fd5b9250929050565b6000806000806060858703121561434c57600080fd5b84356001600160401b0381111561436257600080fd5b61436e878288016142ee565b90989097506020870135966040013595509350505050565b60005b838110156143a1578181015183820152602001614389565b8381111561269b5750506000910152565b600081518084526143ca816020860160208601614386565b601f01601f19169290920160200192915050565b602081526000610fae60208301846143b2565b80151581146113a957600080fd5b6000806000806000806080878903121561441857600080fd5b8635614423816142bc565b955060208701356001600160401b038082111561443f57600080fd5b61444b8a838b016142ee565b909750955060408901359150614460826143f1565b9093506060880135908082111561447657600080fd5b5061448389828a016142ee565b979a9699509497509295939492505050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b03811182821017156144cd576144cd614495565b60405290565b604051601f8201601f191681016001600160401b03811182821017156144fb576144fb614495565b604052919050565b60006001600160401b0382111561451c5761451c614495565b50601f01601f191660200190565b600082601f83011261453b57600080fd5b813561454e61454982614503565b6144d3565b81815284602083860101111561456357600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561459357600080fd5b823561459e816142bc565b915060208301356001600160401b038111156145b957600080fd5b6145c58582860161452a565b9150509250929050565b6000806000606084860312156145e457600080fd5b83356145ef816142bc565b925060208401356001600160401b038082111561460b57600080fd5b6146178783880161452a565b9350604086013591508082111561462d57600080fd5b5061463a8682870161452a565b9150509250925092565b60006020828403121561465657600080fd5b81356001600160401b0381111561466c57600080fd5b610fc38482850161452a565b6020815261468c60208201835160ff169052565b600060208301516146a2604084018260ff169052565b506040830151606083015260608301516146c760808401826001600160a01b03169052565b5060808301516001600160e01b0319811660a08401525060a08301516101608060c08501526146fa6101808501836143b2565b915060c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151915050610140614740818701836001600160a01b03169052565b909501516001600160a01b031693019290925250919050565b60008060008060008060006080888a03121561477457600080fd5b873561477f816142bc565b965060208801356001600160401b038082111561479b57600080fd5b6147a78b838c016142ee565b909850965060408a01359150808211156147c057600080fd5b6147cc8b838c016142ee565b909650945060608a01359150808211156147e557600080fd5b506147f28a828b016142ee565b989b979a50959850939692959293505050565b60408152600061481860408301856143b2565b8281036020840152611ee581856143b2565b6000602080838503121561483d57600080fd5b82356001600160401b038082111561485457600080fd5b818501915085601f83011261486857600080fd5b81358181111561487a5761487a614495565b8060051b6148898582016144d3565b91825283810185019185810190898411156148a357600080fd5b86860192505b83831015611c47578235858111156148c15760008081fd5b86016060818c03601f19018113156148d95760008081fd5b6148e16144ab565b8983013563ffffffff811681146148f85760008081fd5b8152604083810135614909816142bc565b828c01529183013591888311156149205760008081fd5b61492e8e8c8587010161452a565b908201528452505091860191908601906148a9565b60008060008060008060a0878903121561495c57600080fd5b86356001600160401b0381111561497257600080fd5b61497e89828a016142ee565b9097509550506020870135614992816142bc565b9350604087013592506060870135915060808701356149b0816142bc565b809150509295509295509295565b6000806000604084860312156149d357600080fd5b83356001600160401b038111156149e957600080fd5b6149f5868287016142ee565b909790965060209590950135949350505050565b60008060408385031215614a1c57600080fd5b50508035926020909101359150565b600060208284031215614a3d57600080fd5b5035919050565b60008060008060608587031215614a5a57600080fd5b84356001600160401b03811115614a7057600080fd5b614a7c878288016142ee565b9095509350506020850135614a90816142bc565b9396929550929360400135925050565b600080600080600060608688031215614ab857600080fd5b8535614ac3816142bc565b945060208601356001600160401b0380821115614adf57600080fd5b614aeb89838a016142ee565b90965094506040880135915080821115614b0457600080fd5b50614b11888289016142ee565b969995985093965092949392505050565b60008060408385031215614b3557600080fd5b8235614b40816142bc565b91506020830135614b50816142bc565b809150509250929050565b600080600060408486031215614b7057600080fd5b8335925060208401356001600160401b03811115614b8d57600080fd5b614b99868287016142ee565b9497909650939450505050565b60008060208385031215614bb957600080fd5b82356001600160401b03811115614bcf57600080fd5b614bdb858286016142ee565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b81811015614c285783516001600160a01b031683529284019291840191600101614c03565b50909695505050505050565b60008060408385031215614c4757600080fd5b8235614c52816142bc565b946020939093013593505050565b6020808252601b908201527f53463a206f6e6c7920676f7665726e616e636520616c6c6f7765640000000000604082015260600190565b60208082526012908201527153463a206e6f6e2075706772616461626c6560701b604082015260600190565b600060208284031215614cd557600080fd5b5051919050565b60208082526022908201527f53463a2061677265656d656e7420636c617373206e6f74207265676973746572604082015261195960f21b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082821015614d4657614d46614d1e565b500390565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f53463a2073656e646572206973206e6f74206c6973746564206167726565656d604082015262195b9d60ea1b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b60008219821115614dcd57614dcd614d1e565b500190565b600080821280156001600160ff1b0384900385131615614df457614df4614d1e565b600160ff1b8390038412811615614e0d57614e0d614d1e565b50500190565b600082601f830112614e2457600080fd5b8151614e3261454982614503565b818152846020838601011115614e4757600080fd5b610fc3826020830160208701614386565b600060208284031215614e6a57600080fd5b81516001600160401b03811115614e8057600080fd5b610fc384828501614e13565b6020808252601c908201527f53463a204150505f52554c455f4354585f49535f524541444f4e4c5900000000604082015260600190565b60208082526022908201527f53463a206f6e6c79206c6973746564206167726565656d656e7420616c6c6f77604082015261195960f21b606082015260800190565b600060208284031215614f1757600080fd5b8151610fae816143f1565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060ff821660ff8103614f5c57614f5c614d1e565b60010192915050565b600060208284031215614f7757600080fd5b8151610fae816142bc565b60208082526024908201527f53463a2061677265656d656e742063616c6c6261636b206973206e6f742061636040820152633a34b7b760e11b606082015260800190565b600060018201614fd857614fd8614d1e565b5060010190565b858152602081018590526001600160a01b03841660408201526001600160e01b03198316606082015260a060808201819052600090610a39908301846143b2565b60008251615032818460208701614386565b9190910192915050565b60008261505957634e487b7160e01b600052601260045260246000fd5b500490565b6000806040838503121561507157600080fd5b82516001600160401b038082111561508857600080fd5b61509486838701614e13565b935060208501519150808211156150aa57600080fd5b506145c585828601614e13565b600080600080600060a086880312156150cf57600080fd5b855194506020860151935060408601516150e8816142bc565b60608701519093506001600160e01b03198116811461510657600080fd5b60808701519092506001600160401b0381111561512257600080fd5b61512e88828901614e13565b9150509295509295909350565b6000806000806080858703121561515157600080fd5b8451935060208501519250604085015161516a816142bc565b606086015190925061517b816142bc565b939692955090935050565b6000806040838503121561519957600080fd5b82516151a4816142bc565b6020939093015192949293505050565b6000806000606084860312156151c957600080fd5b83516151d4816142bc565b60208501519093506151e5816142bc565b80925050604084015190509250925092565b60608152604160608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e726567697374726174696f6e4b6560a0820152607960f81b60c082015260018060a01b038316602082015260e060408201526000610fc360e08301846143b2565b60008551602061528f8285838b01614386565b818401915086825285516152a881838501848a01614386565b85519201916152bc81838501848901614386565b91909101019695505050505050565b60008160001904831182151516156152e5576152e5614d1e565b50029056fe608060405234801561001057600080fd5b5061022a806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f6100543660046101c4565b61006b565b610069610064610171565b6101a0565b565b6001600160a01b0381166100c65760405162461bcd60e51b815260206004820152601760248201527f5555505350726f78793a207a65726f206164647265737300000000000000000060448201526064015b60405180910390fd5b60006100f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316146101465760405162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a6564000060448201526064016100bd565b61016e817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50565b600061019b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b3660008037600080366000845af43d6000803e8080156101bf573d6000f35b3d6000fd5b6000602082840312156101d657600080fd5b81356001600160a01b03811681146101ed57600080fd5b939250505056fea264697066735822122055e86118ce2711c610170f2e930678ba3d15a2874e37c60b77b322eebc0ffc5f64736f6c634300080d0033a26469706673582212201853c9abefaa133c8b869c37ccf52cb01d4baa75931a2c7ad961f72e027f542064736f6c634300080d003360a06040523480156200001157600080fd5b506040516200548038038062005480833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516153ec62000094600039600061076f01526153ec6000f3fe608060405234801561001057600080fd5b50600436106101575760003560e01c806352d1902d116100c357806394229ecb1161007c57806394229ecb146103825780639b2e48bc14610395578063aabd2668146103c3578063b4b333c6146103d6578063e6a1e888146103e9578063e8e7e2d1146103fc57600080fd5b806352d1902d146102fa57806354b770e31461031057806362fc305e146103235780637730599e14610336578063811b3d401461035c5780638d997f6e1461036f57600080fd5b8063469519541161011557806346951954146102525780634b839e0b146102675780634c8b181f1461028a5780634fe9c2911461029d57806350209a62146102c757806350d75d25146102da57600080fd5b8062422bbe1461015c5780630602f7db14610194578063062e56ec146101ba57806309d256ef146101da5780630f1ac49514610209578063354b95901461023f575b600080fd5b61016f61016a366004614626565b61040f565b6040805193845260ff9092166020840152600b0b908201526060015b60405180910390f35b6101a76101a2366004614671565b610445565b604051600b9190910b815260200161018b565b6101cd6101c83660046146df565b6104ce565b60405161018b91906147a0565b6101ed6101e8366004614671565b6104e8565b6040805160ff9093168352600b9190910b60208301520161018b565b61021c6102173660046147b3565b61050c565b60408051948552600b9390930b602085015291830152606082015260800161018b565b6101cd61024d3660046147fe565b610542565b61026561026036600461488a565b610764565b005b61027a6102753660046148a7565b6107e8565b604051901515815260200161018b565b6101cd6102983660046148e8565b6108bf565b6102b06102ab3660046147b3565b6109d9565b60408051921515835260208301919091520161018b565b6101cd6102d5366004614964565b610abb565b6102e2610b8e565b6040516001600160a01b03909116815260200161018b565b610302610bbd565b60405190815260200161018b565b6101cd61031e3660046146df565b610c21565b6101cd610331366004614964565b610c39565b7fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3610302565b6101cd61036a3660046149b4565b610cec565b61030261037d3660046149f8565b610f76565b6101cd6103903660046147fe565b611262565b6103a86103a33660046148a7565b611435565b6040805193845260208401929092529082015260600161018b565b61021c6103d1366004614671565b61148f565b6101cd6103e43660046148e8565b6114a1565b61021c6103f7366004614626565b611535565b6101a761040a3660046147b3565b611570565b600080600061041e858561158a565b9250600061042c87856115f5565b8051602090910151959990985094965093945050505050565b60006001605f1b821061049f5760405162461bcd60e51b815260206004820152601b60248201527f4346413a206465706f736974206e756d62657220746f6f20626967000000000060448201526064015b60405180910390fd5b63ffffffff198216915060006104b4846116ba565b50905060006104c38285614a59565b925050505b92915050565b60606104df85856000808787610cec565b95945050505050565b60008060006104f785856115f5565b80516020909101519097909650945050505050565b600080600080600061051e8787611835565b805160208201516040830151606090930151919b909a509198509650945050505050565b606060006105868885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118ee92505050565b9050866001600160a01b031681606001516001600160a01b0316036105ed5760405162461bcd60e51b815260206004820152601760248201527f4346413a20455f4e4f5f53454e4445525f5550444154450000000000000000006044820152606401610496565b6000806106038a6105fe8b8b611ab2565b611ada565b91509150600080600061061b8d8d886060015161040f565b92509250925061062c826001611b21565b6106785760405162461bcd60e51b815260206004820152601960248201527f455f4e4f5f4f50455241544f525f5550444154455f464c4f57000000000000006044820152606401610496565b6000600b82900b60016001605f1b03148061069d57508a600b0b8560200151600b0b12155b6106bf5760208501516106b0908c614a6d565b6106ba9083614a6d565b6106c1565b815b9050600081600b0b12156106e75760405162461bcd60e51b815260040161049690614abd565b6106f38e858584611b7c565b5050505061072160408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160a01b03808c1682528a8116602083015289166040820152600b88900b60608201526107558183858a8a89611c05565b9b9a5050505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107dc5760405162461bcd60e51b815260206004820152601960248201527f6f6e6c7920686f73742063616e2075706461746520636f6465000000000000006044820152606401610496565b6107e581611d8a565b50565b604051633acd4df360e21b81526001600160a01b03838116600483015260248201839052600091829186169063eb3537cc90604401606060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190614afe565b50509050600081126108745760019150506108b8565b600080610880876116ba565b9150915060006108908888611835565b91505060006108a28260400151611f98565b90506108b085828686612006565b955050505050505b9392505050565b606060006109038785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118ee92505050565b905060006109168888846060015161040f565b509150506000610927826002611b21565b9050806109765760405162461bcd60e51b815260206004820152601960248201527f455f4e4f5f4f50455241544f525f44454c4554455f464c4f57000000000000006044820152606401610496565b6040805160808101825260008082526020820181905291810182905260608101919091525b6001600160a01b03808b168252898116602083015288166040820152600060608201526109cb8183898988612043565b9a9950505050505050505050565b6000806000846001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a409190614b37565b9050806001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa49190614b54565b9150610ab18585846107e8565b9250509250929050565b60606000610aff8785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118ee92505050565b9050610b2b60408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160a01b03808916825260608084015182166020840181905291891660408401819052600b89900b91840191909152600091610b6991611ab2565b9050600080610b7c846000015184611ada565b915091506107558482848b8b8a611c05565b6000610bb87f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000306001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb89190614b54565b60606104df8585600760016001605f1b038787610cec565b60606000610c7d8785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118ee92505050565b9050610ca960408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160a01b038089168252606080840151821660208401529088166040830152600b87900b90820152610ce0818686856127da565b98975050505050505050565b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610d33925087915061297a9050565b610d7f5760405162461bcd60e51b815260206004820152601860248201527f4346413a20556e636c65616e207065726d697373696f6e7300000000000000006044820152606401610496565b6000610dc18885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118ee92505050565b9050866001600160a01b031681606001516001600160a01b031603610e285760405162461bcd60e51b815260206004820152601e60248201527f4346413a20455f4e4f5f53454e4445525f464c4f575f4f50455241544f5200006044820152606401610496565b600085600b0b1215610e7c5760405162461bcd60e51b815260206004820152601c60248201527f4346413a20455f4e4f5f4e454741544956455f414c4c4f57414e4345000000006044820152606401610496565b6040805180820190915260ff87168152600b86900b60208201526060820151600090610ea8908a61158a565b9050896001600160a01b031663a1b2bf8b82610ec385612981565b6040518363ffffffff1660e01b8152600401610ee0929190614ba8565b600060405180830381600087803b158015610efa57600080fd5b505af1158015610f0e573d6000803e3d6000fd5b50505060608401516040805160ff8c168152600b8b900b60208201526001600160a01b03808e169450928316928e16917fc0d5d3a6ac18cc1769788c925e6e7fc89cd47e4270a42884736fa9b3ec09f3a8910160405180910390a45050509695505050505050565b60008082600b0b1215610fcb5760405162461bcd60e51b815260206004820152601f60248201527f4346413a206e6f7420666f72206e6567617469766520666c6f772072617465006044820152606401610496565b6000836001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102f9190614b37565b90506000816001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110959190614b37565b90506000816001600160a01b03166380f70cba84887feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc46040518463ffffffff1660e01b81526004016110e993929190614bc9565b602060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a9190614b54565b90506000826001600160a01b03166380f70cba85897fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f786040518463ffffffff1660e01b815260040161117e93929190614bc9565b602060405180830381865afa15801561119b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bf9190614b54565b9050602081901c63ffffffff1660016001605f1b036111e282600b8a900b614bed565b11156112295760405162461bcd60e51b81526020600482015260166024820152754346413a20666c6f77207261746520746f6f2062696760501b6044820152606401610496565b600061123588836129f7565b905083811080156112495750600088600b0b135b6112535780611255565b835b9998505050505050505050565b606060006112a68885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118ee92505050565b9050866001600160a01b031681606001516001600160a01b03160361130d5760405162461bcd60e51b815260206004820152601760248201527f4346413a20455f4e4f5f53454e4445525f4352454154450000000000000000006044820152606401610496565b60008060006113218b8b866060015161040f565b925092509250611332826000611b21565b61137e5760405162461bcd60e51b815260206004820152601e60248201527f4346413a20455f4e4f5f4f50455241544f525f4352454154455f464c4f5700006044820152606401610496565b6000600b82900b60016001605f1b03146113a15761139c8983614a6d565b6113a3565b815b9050600081600b0b12156113c95760405162461bcd60e51b815260040161049690614abd565b6113d58c858584611b7c565b5050505061140360408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160a01b03808a168252888116602083015287166040820152600b86900b6060820152611255818686856127da565b60008060008060006114478888611835565b915091508115611484578060200151600b0b8160000151876114699190614c0c565b6114739190614c4b565b945080604001519350806060015192505b505093509350939050565b600080600080600061051e8787611ada565b606060006114e58785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118ee92505050565b905060006114f88888846060015161040f565b509150506000611509826002611b21565b905061099b60408051608081018252600080825260208201819052918101829052606081019190915290565b600080600080600061154b886105fe8989611ab2565b805160208201516040830151606090930151919c909b50919950975095505050505050565b60008061157d8484611835565b6020015195945050505050565b600082826040516020016115d79291906060808252600c908201526b333637bba7b832b930ba37b960a11b60808201526001600160a01b0392831660208201529116604082015260a00190565b60405160208183030381529060405280519060200120905092915050565b6040805180820182526000808252602082018190529151636c2d9f2f60e01b8152306004820152602481018490526001604482015282906001600160a01b03861690636c2d9f2f90606401600060405180830381865afa15801561165d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116859190810190614d41565b90506116ad8160008151811061169d5761169d614ddb565b602002602001015160001c612a76565b92509250505b9250929050565b6000806000836001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117219190614b37565b90506000816001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611763573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117879190614b37565b90506000816001600160a01b03166380f70cba84887fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f786040518463ffffffff1660e01b81526004016117db93929190614bc9565b602060405180830381865afa1580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181c9190614b54565b63ffffffff602082901c81169891169650945050505050565b600061183f61455f565b604051634b61cc3360e01b81523060048201526001600160a01b038481166024830152600060448301819052600160648401529190861690634b61cc33906084015b600060405180830381865afa15801561189e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118c69190810190614d41565b90506116ad816000815181106118de576118de614ddb565b602002602001015160001c612aae565b6118f661458a565b336001600160a01b0316836001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119629190614b37565b6001600160a01b0316146119ac5760405162461bcd60e51b81526020600482015260116024820152701d5b985d5d1a1bdc9a5e9959081a1bdcdd607a1b6044820152606401610496565b604051632fd0a1cd60e21b8152339063bf428734906119cf9085906004016147a0565b602060405180830381865afa1580156119ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a109190614e01565b611a4a5760405162461bcd60e51b815260206004820152600b60248201526a0d2dcecc2d8d2c840c6e8f60ab1b6044820152606401610496565b604051631fb6491d60e11b81523390633f6c923a90611a6d9085906004016147a0565b600060405180830381865afa158015611a8a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108b89190810190614ea3565b604080516001600160a01b0380851660208301528316918101919091526000906060016115d7565b6000611ae461455f565b604051636c2d9f2f60e01b815230600482015260248101849052600160448201526000906001600160a01b03861690636c2d9f2f90606401611881565b600080826002811115611b3657611b36614faa565b03611b4757506001828116146104c8565b6001826002811115611b5b57611b5b614faa565b03611b6e5750600182811c8116146104c8565b505060021c60019081161490565b6040805180820190915260ff83168152600b82900b60208201526001600160a01b03851663a1b2bf8b85611baf84612981565b6040518363ffffffff1660e01b8152600401611bcc929190614ba8565b600060405180830381600087803b158015611be657600080fd5b505af1158015611bfa573d6000803e3d6000fd5b505050505050505050565b60606000611c138884612b0e565b91505085611c5e5760405162461bcd60e51b815260206004820152601860248201527710d1904e88199b1bddc8191bd95cc81b9bdd08195e1a5cdd60421b6044820152606401610496565b6040888101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa158015611ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccc9190614e01565b15611d2857611d2188604001518960000151838a89898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b925060019150612c819050565b9150611d73565b611d708860000151828988888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a925061339e915050565b91505b8751611d7f9084613476565b509695505050505050565b6000611db47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603611e0a5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401610496565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6c9190614b54565b611e74610bbd565b14611ecd5760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401610496565b6001600160a01b0381163003611f255760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401610496565b611f4d817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc611f76610bbd565b604080519182526001600160a01b03841660208301520160405180910390a150565b60006001600160ff1b038211156120025760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610496565b5090565b6000806120138587614fc0565b905060006120218587615001565b905061202d848661502f565b6120378284615001565b13979650505050505050565b6040805160c0810182526000808252602082018190529181018290526060818101839052608082019290925260a0810182905260208701516001600160a01b03166120c65760405162461bcd60e51b81526020600482015260136024820152724346413a2073656e646572206973207a65726f60681b6044820152606401610496565b60408701516001600160a01b03166121185760405162461bcd60e51b81526020600482015260156024820152744346413a207265636569766572206973207a65726f60581b6044820152606401610496565b61212a87602001518860400151611ab2565b8082526020808901516001600160a01b03908116918401919091526040808a01518216908401526060808601519091169083015260006080830181905260a0808601519084015288519091829161218091611ada565b91509150816121cc5760405162461bcd60e51b815260206004820152601860248201527710d1904e88199b1bddc8191bd95cc81b9bdd08195e1a5cdd60421b6044820152606401610496565b885160208a01516040808801519051633acd4df360e21b81526000936001600160a01b03169263eb3537cc92612218926004016001600160a01b03929092168252602082015260400190565b606060405180830381865afa158015612235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122599190614afe565b5050905089602001516001600160a01b031686606001516001600160a01b0316141580156122a1575089604001516001600160a01b031686606001516001600160a01b031614155b80156122ab575088155b156123f75760208a0151604051636b4f333560e01b81526001600160a01b0390911660048201523390636b4f333590602401602060405180830381865afa1580156122fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231e9190614e01565b158015612396575060408a8101519051636b4f333560e01b81526001600160a01b0390911660048201523390636b4f333590602401602060405180830381865afa158015612370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123949190614e01565b155b156123f757600081126123f75760405162461bcd60e51b815260206004820152602360248201527f4346413a2073656e646572206163636f756e74206973206e6f7420637269746960448201526218d85b60ea1b6064820152608401610496565b6000811215612415576124158a600001518286858a6060015161358d565b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060208b015160608801519196506001600160a01b0390811691160361250b5760408a8101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa1580156124b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d89190614e01565b156124fc576124f58a604001518b600001518685898b6002612c81565b94506127cd565b89516124f5908584888a61339e565b89604001516001600160a01b031686606001516001600160a01b03160361263f5760208a0151604051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa158015612576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259a9190614e01565b156125b7576124f58a602001518b600001518685898b6002612c81565b60408a8101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa158015612601573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126259190614e01565b156124fc576124f560008b600001518685898b6002612c81565b60208a0151604051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa158015612689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ad9190614e01565b80156126b95750600081125b156127335760208a0151604051635b92108f60e11b8152339163b724211e916126e9918991600b90600401615046565b6000604051808303816000875af1158015612708573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127309190810190615074565b94505b60408a8101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa15801561277d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a19190614e01565b156127be576124f58a604001518b600001518685898b6002612c81565b89516109cb908584888a61339e565b5050505095945050505050565b60606000806127e98785612b0e565b915091506000806127fe896000015185611ada565b9150915081156128505760405162461bcd60e51b815260206004820152601760248201527f4346413a20666c6f7720616c72656164792065786973740000000000000000006044820152606401610496565b6040898101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa15801561289a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128be9190614e01565b156129175761291089604001518a6000015185848c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052508f93509150612c819050565b9450612962565b61295f896000015184838b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d925061339e915050565b94505b885161296e9087613476565b50505050949350505050565b60f8161590565b606060008260200151600b0b121561299b5761299b6150a9565b60408051600180825281830190925290602080830190803683370190505090508160200151600b0b6080836000015160ff16901b1760001b816000815181106129e6576129e6614ddb565b602002602001018181525050919050565b600082600b0b600003612a0c575060006104c8565b60016001605f1b03821115612a2357612a236150a9565b612a6882604051806040016040528060158152602001744346413a206465706f736974206f766572666c6f7760581b81525085600b0b6137999092919063ffffffff16565b600b0b90506108b881613831565b6040805180820190915260008082526020820152811580159190612aa957600b83900b6020820152608083901c60ff1681525b915091565b6000612ab861455f565b821580159250612aa95760e083901c8152608083901c6bffffffffffffffffffffffff16600b0b6020808301919091526bffffffffffffffff0000000084821c811660408401529084901b166060820152915091565b6040805160c08101825260008082526020820181905291810182905260608082018390526080820183905260a082015260408401516001600160a01b0316612b905760405162461bcd60e51b81526020600482015260156024820152744346413a207265636569766572206973207a65726f60581b6044820152606401610496565b612ba284602001518560400151611ab2565b8082526020808601516001600160a01b0390811691840182905260408088015182169085018190526060808801519092168286015290870151600b0b608085015260a0808701519085015291935003612c315760405162461bcd60e51b81526020600482015260116024820152704346413a206e6f2073656c6620666c6f7760781b6044820152606401610496565b60008160800151600b0b136116b35760405162461bcd60e51b81526020600482015260166024820152754346413a20696e76616c696420666c6f77207261746560501b6044820152606401610496565b82612c8a6145e5565b6001600160a01b03891615612e73576000612d1f898b8a600001518b602001518c60400151604051602001612cd59291906001600160a01b0392831681529116602082015260400190565b60408051601f1981840301815260e08301825260006080840181905260a0840181905260c08401526001600160a01b03958616835293909416602082015292830152606082015290565b90506000846002811115612d3557612d35614faa565b03612d4a5764010000000060c0820152612d7f565b6001846002811115612d5e57612d5e614faa565b03612d735764040000000060c0820152612d7f565b64100000000060c08201525b612d898187613865565b82526040850151610140860151612da391908b8b8b613a1c565b506080830152508451612db79060016150bf565b60ff168160800151612dc99190614bed565b60808201526060870151612ddc90611f98565b60a08201526000846002811115612df557612df5614faa565b03612e0a5764020000000060c0820152612e3f565b6001846002811115612e1e57612e1e614faa565b03612e335764080000000060c0820152612e3f565b64200000000060c08201525b612e4e81836000015185613e6e565b60408401919091528851909350612e66908a90611ada565b602084015250612e919050565b612e8984604001518561014001518a8a8a613a1c565b602084015250505b6000816040015161010001511315612ed057612ec5612ec0612ebb836040015161010001516140d7565b613831565b611f98565b604082015161010001525b6000612edf8760600151611f98565b82604001516101000151612ef39190614c0c565b9050612f1981612f0a846020015160400151611f98565b612f149190614fc0565b6140d7565b82602001516040018181525050612f3b81612f0a846020015160600151611f98565b60208301805160600191909152885190516001600160a01b038b169163a1b2bf8b91612f6690614129565b6040518363ffffffff1660e01b8152600401612f83929190614ba8565b600060405180830381600087803b158015612f9d57600080fd5b505af1158015612fb1573d6000803e3d6000fd5b50505050612fcd89896020015160008460008a6040015161419a565b50612fe5898960400151600080858a6040015161419a565b506101408501516001600160a01b031615806130175750886001600160a01b03168561014001516001600160a01b0316145b1561309557602082015160409081015190516303c9790560e11b81523391630792f20a9161304b91879186906004016150e4565b6000604051808303816000875af115801561306a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130929190810190615074565b92505b6040888101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa1580156130df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131039190614e01565b1561339157604088810151868201519151633acd4df360e21b81526001600160a01b0391821660048201526024810192909252600091908b169063eb3537cc90604401606060405180830381865afa158015613163573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131879190614afe565b5090915050600081121561338f5760028560028111156131a9576131a9614faa565b03613334576040808a01519051635b92108f60e11b8152339163b724211e916131d9918891600c90600401615046565b6000604051808303816000875af11580156131f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132209190810190615074565b9350600061324861323083615109565b613243600061323e87615109565b614340565b614356565b90508a6001600160a01b031663cf97256d8b602001518361326890615109565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156132ae57600080fd5b505af11580156132c2573d6000803e3d6000fd5b5050505060408a810151905163cf97256d60e01b81526001600160a01b03918216600482015260248101839052908c169063cf97256d90604401600060405180830381600087803b15801561331657600080fd5b505af115801561332a573d6000803e3d6000fd5b505050505061338f565b60405162461bcd60e51b815260206004820152602a60248201527f4346413a204150505f52554c455f4e4f5f435249544943414c5f524543454956604482015269115497d050d0d3d5539560b21b6064820152608401610496565b505b5050979650505050505050565b606083810151156133b1576133b16150a9565b60006133bb61455f565b6133d184604001518561014001518a8a8a613a1c565b6101408701519294509250506001600160a01b03808a169116036134675760408082015190516303c9790560e11b81523391630792f20a9161341991899187906004016150e4565b6000604051808303816000875af1158015613438573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526134609190810190615074565b925061346b565b8492505b505095945050505050565b602081015160ff1660031415806134a45750816001600160a01b03168161014001516001600160a01b031614155b156135895760608101516040808301519051633acd4df360e21b81526001600160a01b039283166004820152602481019190915260009184169063eb3537cc90604401606060405180830381865afa158015613504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135289190614afe565b5050905060008112156135875760405162461bcd60e51b815260206004820152602160248201527f4346413a206e6f7420656e6f75676820617661696c61626c652062616c616e636044820152606560f81b6064820152608401610496565b505b5050565b600061359d868560200151611835565b91505060006135af8460400151611f98565b905060006135c08360400151611f98565b905060606000806135d1848b614fc0565b90506000806135df8d6116ba565b915091506135ef8c878484612006565b93505050600081126136da576000846136088388614c4b565b6136129190615001565b9050600183613622576001613625565b60005b6040805160ff9384166020820152929091169082015260600160405160208183030381529060405293508b6001600160a01b0316631863e8098b60000151868b878f60200151613674886140d7565b61368089600019614c4b565b6040518863ffffffff1660e01b81526004016136a29796959493929190615125565b600060405180830381600087803b1580156136bc57600080fd5b505af11580156136d0573d6000803e3d6000fd5b505050505061378c565b6040805160016020820152600291810191909152859060600160405160208183030381529060405293508b6001600160a01b0316631863e8098b60000151868b60008f6020015161372a886140d7565b6137368a600019614c4b565b6040518863ffffffff1660e01b81526004016137589796959493929190615125565b600060405180830381600087803b15801561377257600080fd5b505af1158015613786573d6000803e3d6000fd5b50505050505b5050505050505050505050565b600083600b0b6000036137ae575060006108b8565b83600b0b6000191480156137d25750600b83900b6b7fffffffffffffffffffffff19145b1582906137f25760405162461bcd60e51b815260040161049691906147a0565b50838302600b84900b6138058683615172565b600b0b1483906138285760405162461bcd60e51b815260040161049691906147a0565b50949350505050565b60008063ffffffff8316613846576000613849565b60015b60ff169050602061385c8285831c6151b5565b901b9392505050565b6020820151604051633e7d48bd60e21b81526001600160a01b03909116600482015260609060009081908190339063f9f522f490602401606060405180830381865afa1580156138b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138dd91906151cd565b919450925090508280156138ef575081155b15613a13576000613900868861436b565b90508660c001518216600003613a0557600061391f8860c001516143e9565b88516040808b015160608c01518251600081526020810190935261394b93923092919060448101615209565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352918a015160c08b01519251633a020f0160e11b815291935033926374041e02926139ba929186916410000000009190911490889060040161524e565b6000604051808303816000875af11580156139d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613a019190810190615074565b9550505b613a10866000614480565b50505b50505092915050565b600080613a2761455f565b6000806000613a35896116ba565b5090506000336001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a9c9190614b37565b60405163407b865d60e11b81529091506001600160a01b038216906380f70cba90613aef9033908e907feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc490600401614bc9565b602060405180830381865afa158015613b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b309190614b54565b9250613b408960800151836129f7565b95505050613b518660600151611f98565b613b5e8760400151611f98565b613b6786611f98565b613b719190614c0c565b613b7b9190614fc0565b9450613b8e85612f0a8860400151611f98565b91508082108015613ba6575060008760800151600b0b135b15613be857613bb88660600151611f98565b613bc58760400151611f98565b613bce83611f98565b613bd89190614c0c565b613be29190614fc0565b94508091505b6001600160a01b03891615801590613c125750876001600160a01b0316896001600160a01b031614155b15613c1c57600093505b604051806080016040528060008960800151600b0b13613c3d576000613c3f565b8b5b81526020018860800151600b0b815260200183815260200187606001518152509250876001600160a01b031663a1b2bf8b8860000151613c7e86614129565b6040518363ffffffff1660e01b8152600401613c9b929190614ba8565b600060405180830381600087803b158015613cb557600080fd5b505af1158015613cc9573d6000803e3d6000fd5b505060408051808201909152600080825260208201529250613ce9915050565b613d49888860200151613d408a60800151604051806040016040528060168152602001754346413a20666c6f7772617465206f766572666c6f7760501b8152508b60200151600b0b6144a89092919063ffffffff16565b8860008f61419a565b600b90810b82526040808901516020808a0151835180850190945260168452754346413a20666c6f7772617465206f766572666c6f7760501b9184019190915260808b0151613dac948d94613da3939290910b91906144a8565b6000808f61419a565b600b0b60208083018290526040808a0151918a015160808b0151855160a08d015193516001600160a01b0395861696938616958f16947f57269d2ebcccecdcc0d9d2c0a0b80ead95f344e28ec20f50f709811f209d4e0e94613e12949392909190615297565b60405180910390a486606001516001600160a01b03167f71e0c98e270fc3084227b473f176924d5303ece8c639e679998a2d7dc8e70f7483604051613e5991815260200190565b60405180910390a25050955095509592505050565b613e7661458a565b6020840151604051633e7d48bd60e21b81526001600160a01b03909116600482015260609060009081908190339063f9f522f490602401606060405180830381865afa158015613eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eee91906151cd565b88965091945092509050828015613f03575081155b156140cc57613f12848961436b565b93508760c0015181166000036140ba576000613f318960c001516143e9565b89516040808c015160608d015182516000815260208101909352613f5f9392309291908e90604481016152cf565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352918b015160c08c0151925163079b42a160e21b81529193503392631e6d0a8492613fce9291869164200000000091909114908b9060040161524e565b6000604051808303816000875af1158015613fed573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526140159190810190615074565b604051631fb6491d60e11b81529095503390633f6c923a9061403b9088906004016147a0565b600060405180830381865afa158015614058573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526140809190810190614ea3565b95506140b2600061323e6140978c60800151611f98565b6132436140a78b60e00151611f98565b8b6101000151614340565b610100870152505b6140c986866101000151614480565b93505b505050935093915050565b6000808212156120025760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152606401610496565b6040805160018082528183019092526060916020808301908036833701905050905060208260600151901c604060208460400151901c901b608084602001516bffffffffffffffffffffffff16901b60e08560000151901b17171760001b816000815181106129e6576129e6614ddb565b6000806141a78888611835565b91505060008160200151600b0b6141c7836000015186612ec0919061502f565b6141d19190614c4b565b9050801561423c5760405163cf97256d60e01b81526001600160a01b038981166004830152602482018390528a169063cf97256d90604401600060405180830381600087803b15801561422357600080fd5b505af1158015614237573d6000803e3d6000fd5b505050505b61428687604051806040016040528060168152602001754346413a20666c6f7772617465206f766572666c6f7760501b8152508460200151600b0b6145049092919063ffffffff16565b600b0b602083015283825260408201516142a5908790612f0a90611f98565b604083015260608201516142be908690612f0a90611f98565b60608301526001600160a01b03891663090c415e8960006142de86614129565b6040518463ffffffff1660e01b81526004016142fc93929190615328565b600060405180830381600087803b15801561431657600080fd5b505af115801561432a573d6000803e3d6000fd5b5050506020909201519998505050505050505050565b600081831361434f57816108b8565b5090919050565b600081831361436557826108b8565b50919050565b6020810151608082015160a08301518351604051630768fabb60e41b8152606094339463768fabb0946143a2948a9460040161534f565b6000604051808303816000875af11580156143c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108b89190810190615074565b6000640100000000820361440557506330d9c91560e01b919050565b640400000000820361441f5750630221347d60e61b919050565b64100000000082036144395750635f9e7d7760e01b919050565b6402000000008203614453575063d86ed3e560e01b919050565b640800000000820361446d575063230dbd2960e01b919050565b506353c11f9960e01b919050565b919050565b604051634c4d861f60e11b8152606090339063989b0c3e906143a29086908690600401615394565b6000828403600b84900b82138015906144c7575084600b0b81600b0b13155b806144e55750600084600b0b1280156144e5575084600b0b81600b0b135b83906138285760405162461bcd60e51b815260040161049691906147a0565b6000838301600b84900b8213801590614523575084600b0b81600b0b12155b806144e55750600084600b0b1280156144e5575084600b0b81600b0b1283906138285760405162461bcd60e51b815260040161049691906147a0565b6040518060800160405280600081526020016000600b0b815260200160008152602001600081525090565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6040518060600160405280606081526020016145ff61455f565b815260200161460c61458a565b905290565b6001600160a01b03811681146107e557600080fd5b60008060006060848603121561463b57600080fd5b833561464681614611565b9250602084013561465681614611565b9150604084013561466681614611565b809150509250925092565b6000806040838503121561468457600080fd5b823561468f81614611565b946020939093013593505050565b60008083601f8401126146af57600080fd5b50813567ffffffffffffffff8111156146c757600080fd5b6020830191508360208285010111156116b357600080fd5b600080600080606085870312156146f557600080fd5b843561470081614611565b9350602085013561471081614611565b9250604085013567ffffffffffffffff81111561472c57600080fd5b6147388782880161469d565b95989497509550505050565b60005b8381101561475f578181015183820152602001614747565b8381111561476e576000848401525b50505050565b6000815180845261478c816020860160208601614744565b601f01601f19169290920160200192915050565b6020815260006108b86020830184614774565b600080604083850312156147c657600080fd5b82356147d181614611565b915060208301356147e181614611565b809150509250929050565b8035600b81900b811461447b57600080fd5b60008060008060008060a0878903121561481757600080fd5b863561482281614611565b9550602087013561483281614611565b9450604087013561484281614611565b9350614850606088016147ec565b9250608087013567ffffffffffffffff81111561486c57600080fd5b61487889828a0161469d565b979a9699509497509295939492505050565b60006020828403121561489c57600080fd5b81356108b881614611565b6000806000606084860312156148bc57600080fd5b83356148c781614611565b925060208401356148d781614611565b929592945050506040919091013590565b60008060008060006080868803121561490057600080fd5b853561490b81614611565b9450602086013561491b81614611565b9350604086013561492b81614611565b9250606086013567ffffffffffffffff81111561494757600080fd5b6149538882890161469d565b969995985093965092949392505050565b60008060008060006080868803121561497c57600080fd5b853561498781614611565b9450602086013561499781614611565b935061492b604087016147ec565b60ff811681146107e557600080fd5b60008060008060008060a087890312156149cd57600080fd5b86356149d881614611565b955060208701356149e881614611565b94506040870135614842816149a5565b60008060408385031215614a0b57600080fd5b8235614a1681614611565b9150614a24602084016147ec565b90509250929050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082614a6857614a68614a2d565b500490565b600081600b0b83600b0b600081128160016001605f1b031901831281151615614a9857614a98614a43565b8160016001605f1b03018313811615614ab357614ab3614a43565b5090039392505050565b60208082526021908201527f4346413a20455f4558434545445f464c4f575f524154455f414c4c4f57414e436040820152604560f81b606082015260800190565b600080600060608486031215614b1357600080fd5b8351925060208401519150604084015190509250925092565b805161447b81614611565b600060208284031215614b4957600080fd5b81516108b881614611565b600060208284031215614b6657600080fd5b5051919050565b600081518084526020808501945080840160005b83811015614b9d57815187529582019590820190600101614b81565b509495945050505050565b828152604060208201526000614bc16040830184614b6d565b949350505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000816000190483118215151615614c0757614c07614a43565b500290565b60008083128015600160ff1b850184121615614c2a57614c2a614a43565b6001600160ff1b0384018313811615614c4557614c45614a43565b50500390565b60006001600160ff1b0381841382841380821686840486111615614c7157614c71614a43565b600160ff1b6000871282811687830589121615614c9057614c90614a43565b60008712925087820587128484161615614cac57614cac614a43565b87850587128184161615614cc257614cc2614a43565b505050929093029392505050565b634e487b7160e01b600052604160045260246000fd5b604051610160810167ffffffffffffffff81118282101715614d0a57614d0a614cd0565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715614d3957614d39614cd0565b604052919050565b60006020808385031215614d5457600080fd5b825167ffffffffffffffff80821115614d6c57600080fd5b818501915085601f830112614d8057600080fd5b815181811115614d9257614d92614cd0565b8060051b9150614da3848301614d10565b8181529183018401918481019088841115614dbd57600080fd5b938501935b83851015610ce057845182529385019390850190614dc2565b634e487b7160e01b600052603260045260246000fd5b8051801515811461447b57600080fd5b600060208284031215614e1357600080fd5b6108b882614df1565b805161447b816149a5565b80516001600160e01b03198116811461447b57600080fd5b600082601f830112614e5057600080fd5b815167ffffffffffffffff811115614e6a57614e6a614cd0565b614e7d601f8201601f1916602001614d10565b818152846020838601011115614e9257600080fd5b614bc1826020830160208701614744565b600060208284031215614eb557600080fd5b815167ffffffffffffffff80821115614ecd57600080fd5b908301906101608286031215614ee257600080fd5b614eea614ce6565b614ef383614e1c565b8152614f0160208401614e1c565b602082015260408301516040820152614f1c60608401614b2c565b6060820152614f2d60808401614e27565b608082015260a083015182811115614f4457600080fd5b614f5087828601614e3f565b60a08301525060c083015160c082015260e083015160e0820152610100915081830151828201526101209150614f87828401614b2c565b828201526101409150614f9b828401614b2c565b91810191909152949350505050565b634e487b7160e01b600052602160045260246000fd5b600080821280156001600160ff1b0384900385131615614fe257614fe2614a43565b600160ff1b8390038412811615614ffb57614ffb614a43565b50500190565b60008261501057615010614a2d565b600160ff1b82146000198414161561502a5761502a614a43565b500590565b60008282101561504157615041614a43565b500390565b6060815260006150596060830186614774565b6001600160a01b039490941660208301525060400152919050565b60006020828403121561508657600080fd5b815167ffffffffffffffff81111561509d57600080fd5b614bc184828501614e3f565b634e487b7160e01b600052600160045260246000fd5b600060ff821660ff84168060ff038211156150dc576150dc614a43565b019392505050565b6060815260006150f76060830186614774565b60208301949094525060400152919050565b6000600160ff1b820161511e5761511e614a43565b5060000390565b87815260e06020820152600061513e60e0830189614774565b6001600160a01b03978816604084015295151560608301525092909416608083015260a082015260c0019190915292915050565b600081600b0b83600b0b8061518957615189614a2d565b6b7fffffffffffffffffffffff198214600019821416156151ac576151ac614a43565b90059392505050565b600082198211156151c8576151c8614a43565b500190565b6000806000606084860312156151e257600080fd5b6151eb84614df1565b92506151f960208501614df1565b9150604084015190509250925092565b6001600160a01b038681168252851660208201526040810184905260a06060820181905260009061523c90830185614774565b8281036080840152610ce08185614774565b6001600160a01b038516815260806020820181905260009061527290830186614774565b8415156040840152828103606084015261528c8185614774565b979650505050505050565b84600b0b815283600b0b602082015282600b0b60408201526080606082015260006152c56080830184614774565b9695505050505050565b6001600160a01b038781168252861660208201526040810185905260c06060820181905260009061530290830186614774565b82810360808401526153148186614774565b905082810360a08401526112558185614774565b60018060a01b03841681528260208201526060604082015260006104df6060830184614b6d565b60a08152600061536260a0830188614774565b6001600160a01b0396871660208401526040830195909552506060810192909252909216608090920191909152919050565b6040815260006153a76040830185614774565b9050826020830152939250505056fea264697066735822122085618d07117b3801fdb512b7f44b6c479f018f91370d7b5f4bb12f5283f32f6764736f6c634300080d003360a06040523480156200001157600080fd5b50604051620055d0380380620055d0833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b60805161553c62000094600039600061117c015261553c6000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80637730599e116100ad578063acf4a6c211610071578063acf4a6c21461030d578063b6dacdb814610320578063b96731c214610342578063cd7245c514610355578063d787840a146103ad57600080fd5b80637730599e146102635780637fbc763914610289578063899baaec1461029c5780639b2e48bc146102cc578063acafa1b8146102fa57600080fd5b806346951954116100f457806346951954146101d957806350d75d25146101ee57806352d1902d146101f65780635b5340511461020c5780636041ae961461025057600080fd5b8063232d2b581461012657806323fc23f31461014f5780632e5e74c6146101935780633fd4176a146101a6575b600080fd5b610139610134366004614595565b6103c0565b604051610146919061467c565b60405180910390f35b61016261015d36600461468f565b610b0e565b6040805194151585526001600160801b03938416602086015291831691840191909152166060820152608001610146565b6101396101a13660046146da565b610b79565b6101c173__SlotsBitmapLibrary____________________81565b6040516001600160a01b039091168152602001610146565b6101ec6101e736600461472e565b611171565b005b6101c16111f5565b6101fe611224565b604051908152602001610146565b61021f61021a36600461474b565b611288565b6040516101469493929190931515845291151560208401526001600160801b03166040830152606082015260800190565b61013961025e3660046147a7565b61135e565b7f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a6746101fe565b610139610297366004614822565b61180d565b6102af6102aa366004614863565b61191d565b604080519283526001600160801b03909116602083015201610146565b6102df6102da3660046148b4565b6119f1565b60408051938452602084019290925290820152606001610146565b6101396103083660046146da565b611bfc565b61013961031b3660046147a7565b612024565b61033361032e3660046148f5565b612601565b60405161014693929190614972565b610139610350366004614a0f565b612856565b610368610363366004614a64565b61294a565b604080516001600160a01b03909616865263ffffffff9094166020860152911515928401929092526001600160801b039091166060830152608082015260a001610146565b6101396103bb366004614a90565b612a6c565b60606001600160a01b0385166103f15760405162461bcd60e51b81526004016103e890614af4565b60405180910390fd5b6103f96143ed565b61040161444b565b60606000806104468c89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b90508060a00151925080606001519150506104658b828b8d6000612e17565b60808901521515602080890191909152606088019190915260408088018390529287528251908101909252600082526104a1918d918c91612f29565b925086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050602086015191965050156105055764040000000060c08401526104fb8386612f57565b60a0850152610520565b64010000000060c084015261051a8386612f57565b60a08501525b8360200151801561053d575060808401515163ffffffff90811614155b156106185761058c8460800151608001516001600160801b0316896001600160801b03168660600151602001516001600160801b031661057d9190614b37565b6105879190614b4f565b61310e565b6060850180516001600160801b03909216602090920191909152845190516001600160a01b038d169163a1b2bf8b916105c49061317b565b6040518363ffffffff1660e01b81526004016105e1929190614b96565b600060405180830381600087803b1580156105fb57600080fd5b505af115801561060f573d6000803e3d6000fd5b5050505061082e565b8360200151156106955761065d8460800151608001516001600160801b0316896001600160801b03168660600151604001516001600160801b031661057d9190614b37565b6060850180516001600160801b03909216604090920191909152845190516001600160a01b038d169163a1b2bf8b916105c49061317b565b6040518060a0016040528063ffffffff80168152602001826001600160a01b031681526020018b63ffffffff1681526020018560600151600001516001600160801b03168152602001896001600160801b031681525084608001819052508a6001600160a01b03166312a6a3f885604001516107148760800151613219565b6040518363ffffffff1660e01b8152600401610731929190614b96565b600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b5050604080518082018252600f81526e4944413a20455f4f564552464c4f5760881b60208201526060880151909101516107a693506001600160801b031691508a906132c0565b6060850180516001600160801b03909216604090920191909152845190516001600160a01b038d169163a1b2bf8b916107de9061317b565b6040518363ffffffff1660e01b81526004016107fb929190614b96565b600060405180830381600087803b15801561081557600080fd5b505af1158015610829573d6000803e3d6000fd5b505050505b60008460800151608001516001600160801b031685608001516060015186606001516000015161085e9190614baf565b6001600160801b03166108719190614bd7565b905063ffffffff801685608001516000015163ffffffff160361090a576108a18c8361089c84614c5c565b6132fc565b6001600160a01b038c1663cf97256d836108ba84614c5c565b6040518363ffffffff1660e01b81526004016108d7929190614c78565b600060405180830381600087803b1580156108f157600080fd5b505af1158015610905573d6000803e3d6000fd5b505050505b60405163cf97256d60e01b81526001600160a01b038d169063cf97256d90610938908d908590600401614c78565b600060405180830381600087803b15801561095257600080fd5b505af1158015610966573d6000803e3d6000fd5b50505050846020015115610a0c5760608086015151608080880180516001600160801b039384169401939093528251918c16910152604086015190516001600160a01b038e169163a1b2bf8b916109bc90613219565b6040518363ffffffff1660e01b81526004016109d9929190614b96565b600060405180830381600087803b1580156109f357600080fd5b505af1158015610a07573d6000803e3d6000fd5b505050505b846020015115610a395764080000000060c085015260a0850151610a329085908861344a565b5050610a58565b64020000000060c085015260a0850151610a559085908861344a565b50505b8a63ffffffff16826001600160a01b03168d6001600160a01b03167f0115987243fd19d615b5ea62a80372a06a2b37fec378b148ee7a507c5c4c0a398d8d88604051610aa693929190614c91565b60405180910390a4896001600160a01b03168c6001600160a01b03167fe0707ac7efb8b59c22189af8d004ed17dc9e4379e71b9066119b62c182524977848e8d88604051610af79493929190614cc4565b60405180910390a350505050509695505050505050565b600080600080610b37604080516060810182526000808252602082018190529181019190915290565b6000610b4388886136bd565b9050610b4f8982613724565b90965091508515610b6e57815160208301516040840151919650945092505b505093509350935093565b6060610b836143ed565b610b8b61444b565b600060606000610bd18c89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b606081015160a0909101519093509150506001600160a01b038816610c085760405162461bcd60e51b81526004016103e890614af4565b896001600160a01b0316826001600160a01b031614610c5e5760405162461bcd60e51b81526020600482015260126024820152711251104e881157d393d517d0531313d5d15160721b60448201526064016103e8565b610c6c8b8b8a8c6001612e17565b6080890152506060870152604080870182905291865281516020810190925260008252610c9c918d918b91612f29565b925086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505064100000000060c087015250909550610ced90508386612f57565b60a08501526080808501519081015160609182015191860151516000926001600160801b0390921691610d1f91614baf565b6001600160801b0316610d329190614bd7565b60808601515190915063ffffffff90811614610db857610d9d8560800151608001516040518060400160405280600f81526020016e4944413a20455f4f564552464c4f5760881b8152508760600151602001516001600160801b03166138389092919063ffffffff16565b60608601516001600160801b03909116602090910152610e24565b610e0d8560800151608001516040518060400160405280600f81526020016e4944413a20455f4f564552464c4f5760881b8152508760600151604001516001600160801b03166138389092919063ffffffff16565b60608601516001600160801b039091166040909101525b8b6001600160a01b031663a1b2bf8b8660000151610e45886060015161317b565b6040518363ffffffff1660e01b8152600401610e62929190614b96565b600060405180830381600087803b158015610e7c57600080fd5b505af1158015610e90573d6000803e3d6000fd5b5050505060808501515163ffffffff90811614610eba57610eba8c8a876080015160000151613885565b60808501515163ffffffff1663fffffffe1901610f4857610edf8c8c61089c84614c5c565b6001600160a01b038c1663cf97256d8c610ef884614c5c565b6040518363ffffffff1660e01b8152600401610f15929190614c78565b600060405180830381600087803b158015610f2f57600080fd5b505af1158015610f43573d6000803e3d6000fd5b505050505b6040858101519051632704839760e01b81526004810191909152600260248201526001600160a01b038d1690632704839790604401600060405180830381600087803b158015610f9757600080fd5b505af1158015610fab573d6000803e3d6000fd5b505060405163cf97256d60e01b81526001600160a01b038f16925063cf97256d9150610fdd908c908590600401614c78565b600060405180830381600087803b158015610ff757600080fd5b505af115801561100b573d6000803e3d6000fd5b505064200000000060c0870152505060a085015161102b9085908861344a565b50508963ffffffff168b6001600160a01b03168d6001600160a01b03167fe1f8e9cd8061e5b251769965bda6ca9ef1674bc6541fb9131039fa53f024d1428c86604051611079929190614d0d565b60405180910390a4886001600160a01b03168c6001600160a01b03167f9e02127550b99adc8cc6ee332a36f31338facdbc396cebefce9a047247cd04558d8d866040516110c893929190614d31565b60405180910390a38963ffffffff168b6001600160a01b03168d6001600160a01b03167f0115987243fd19d615b5ea62a80372a06a2b37fec378b148ee7a507c5c4c0a398c60008760405161111f93929190614c91565b60405180910390a4886001600160a01b03168c6001600160a01b03167fe0707ac7efb8b59c22189af8d004ed17dc9e4379e71b9066119b62c1825249778d8d600087604051610af79493929190614cc4565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111e95760405162461bcd60e51b815260206004820152601960248201527f6f6e6c7920686f73742063616e2075706461746520636f64650000000000000060448201526064016103e8565b6111f281613910565b50565b600061121f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000306001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611264573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121f9190614d61565b6000806000806000806112b4604080516060810182526000808252602082018190529181019190915290565b6112bc614486565b6112ca8c8c8b8d6000612e17565b909b5092965090945092509050876112f357600080600080975097509750975050505050611353565b8051608082015163ffffffff9182169091141597509550866113495780608001516001600160801b0316816060015183600001516113319190614baf565b6001600160801b03166113449190614d7a565b61134c565b60005b9450505050505b945094509450949050565b60606113686143ed565b61137061444b565b6000606060006113b68b89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b9050806060015192508060a001519150506113d58a8a848b6001612e17565b6080890181905260608901929092525060408701919091529085525163ffffffff1663fffffffe190161144a5760405162461bcd60e51b815260206004820152601860248201527f4944413a20455f535542535f4e4f545f415050524f564544000000000000000060448201526064016103e8565b6114698a8a866040015160405180602001604052806000815250612f29565b925086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505064100000000060c0870152509095506114ba90508386612f57565b60a08501526080808501519081015160609182015191860151516000926001600160801b03909216916114ec91614baf565b6001600160801b03166114ff9190614bd7565b90506115568560800151608001516040518060400160405280600f81526020016e4944413a20455f4f564552464c4f5760881b8152508760600151602001516001600160801b03166138389092919063ffffffff16565b6060860180516001600160801b039283166020918201526080808901510151604080518082018252600f81526e4944413a20455f4f564552464c4f5760881b938101939093529251909201516115ae931691906132c0565b6060860180516001600160801b03909216604090920191909152855190516001600160a01b038d169163a1b2bf8b916115e69061317b565b6040518363ffffffff1660e01b8152600401611603929190614b96565b600060405180830381600087803b15801561161d57600080fd5b505af1158015611631573d6000803e3d6000fd5b505050506116488b84876080015160000151613885565b606080860151516080870180516001600160801b039092169190920152805163ffffffff9052604086015190516001600160a01b038d169163a1b2bf8b9161168f90613219565b6040518363ffffffff1660e01b81526004016116ac929190614b96565b600060405180830381600087803b1580156116c657600080fd5b505af11580156116da573d6000803e3d6000fd5b505060405163cf97256d60e01b81526001600160a01b038e16925063cf97256d915061170c9086908590600401614c78565b600060405180830381600087803b15801561172657600080fd5b505af115801561173a573d6000803e3d6000fd5b505064200000000060c0870152505060a085015161175a9085908861344a565b50508863ffffffff168a6001600160a01b03168c6001600160a01b03167fe1f8e9cd8061e5b251769965bda6ca9ef1674bc6541fb9131039fa53f024d14286866040516117a8929190614d0d565b60405180910390a4826001600160a01b03168b6001600160a01b03167f9e02127550b99adc8cc6ee332a36f31338facdbc396cebefce9a047247cd04558c8c866040516117f793929190614d31565b60405180910390a3505050505095945050505050565b606060006118518785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b60608101519091506000806118678a848b613b1e565b9150915080600001516001600160801b0316886001600160801b031610156118c55760405162461bcd60e51b81526020600482015260116024820152704944413a20455f494e4445585f47524f5760781b60448201526064016103e8565b6118d88a848b85858d8a60a00151613b7c565b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929d9c50505050505050505050505050565b600080600061192c86866136bd565b905060008061193b8984613724565b915091508161195c5760405162461bcd60e51b81526004016103e890614d99565b6000816040015182602001516119729190614dc2565b6001600160801b03169050600061198c610587838a614ded565b60408051808201909152600f81526e4944413a20455f4f564552464c4f5760881b602082015284519192506119cc916001600160801b03169083906132c0565b95506119e1826001600160801b038316614d7a565b9650505050505094509492505050565b6000806000606080611a038888613dcf565b909250905060005b81518163ffffffff161015611be0576000611a24614486565b600080868563ffffffff1681518110611a3f57611a3f614e0f565b60200260200101519050611a728d878763ffffffff1681518110611a6557611a65614e0f565b6020026020010151613ec2565b909450925083611a8457611a84614e25565b8063ffffffff16836000015163ffffffff1614611aa357611aa3614e25565b6001600160a01b038d16634b61cc33308e611ac863ffffffff8616600160801b614b37565b60016040518563ffffffff1660e01b8152600401611ae99493929190614e3b565b600060405180830381865afa158015611b06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b2e9190810190614f61565b600081518110611b4057611b40614e0f565b6020026020010151915050611b6e604080516060810182526000808252602082018190529181019190915290565b611b788d83613724565b909450905083611b8a57611b8a614e25565b82608001516001600160801b031683606001518260000151611bac9190614baf565b6001600160801b0316611bbf9190614bd7565b611bc9908b614f95565b99505050505080611bd990614fd6565b9050611a0b565b50611beb8888613fde565b935060009250505093509350939050565b6060611c3e8784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b506001600160a01b038416611c655760405162461bcd60e51b81526004016103e890614af4565b611c6d6143ed565b611c7561444b565b611c838989888a6001612e17565b6080870181905260608701929092525060408501919091529083525163ffffffff90811614611ceb5760405162461bcd60e51b81526020600482015260146024820152731251104e881157d4d55094d7d054141493d5915160621b60448201526064016103e8565b60008260800151608001516001600160801b0316836080015160600151846060015160000151611d1b9190614baf565b6001600160801b0316611d2e9190614d7a565b9050611d4f8a8a856040015160405180602001604052806000815250612f29565b915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505082159150611fdd90505764040000000060c0830152611da78285612f57565b60a0840152611dba8a8a61089c84614c5c565b6001600160a01b038a1663cf97256d8a611dd384614c5c565b6040518363ffffffff1660e01b8152600401611df0929190614c78565b600060405180830381600087803b158015611e0a57600080fd5b505af1158015611e1e573d6000803e3d6000fd5b50505050606083810151516080850180516001600160801b039092169190920152604084015190516001600160a01b038c169163a1b2bf8b91611e6090613219565b6040518363ffffffff1660e01b8152600401611e7d929190614b96565b600060405180830381600087803b158015611e9757600080fd5b505af1158015611eab573d6000803e3d6000fd5b505060405163cf97256d60e01b81526001600160a01b038d16925063cf97256d9150611edd908a908590600401614c78565b600060405180830381600087803b158015611ef757600080fd5b505af1158015611f0b573d6000803e3d6000fd5b505050508763ffffffff16896001600160a01b03168b6001600160a01b03167f467eccd248ef31c8bcef16d94856855799a8783aeef10f3759e43614059a6bb18a85604051611f5b929190614c78565b60405180910390a4604080516001600160a01b038b8116825263ffffffff8b166020830152918101839052818916918c16907f48a3d91d4a07e4982b081260e24f922bd33bb965882772d6de19c922c3eabdea9060600160405180910390a364080000000060c083015260a0830151611fd69083908661344a565b5050612017565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505050505b5050509695505050505050565b606061202e6143ed565b61203661444b565b60006060600061207c8b89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b9050806060015192508060a0015191505061209b8a8a848b6000612e17565b60808901521580156020890152606088019190915260408701919091529085526121115760808401515163ffffffff908116146121115760405162461bcd60e51b81526020600482015260146024820152731251104e881157d4d55094d7d054141493d5915160621b60448201526064016103e8565b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040808a015181516020810190925291815294995061216a948f94508e9350909150612f29565b925083602001516122915764010000000060c084015261218a8386612f57565b60a08086019190915260408051918201815260008083526001600160a01b038c16602084015263ffffffff8b1691830191909152606080870151516001600160801b03169083015260808083019190915285015283516121ed908b908490614087565b60808501805163ffffffff909216909152604085015190516001600160a01b038c16916312a6a3f89161221f90613219565b6040518363ffffffff1660e01b815260040161223c929190614b96565b600060405180830381600087803b15801561225657600080fd5b505af115801561226a573d6000803e3d6000fd5b505064020000000060c0860152505060a084015161228a9084908761344a565b5050612551565b64040000000060c08401526122a68386612f57565b60a08501526080808501519081015160609182015191860151516000926001600160801b03909216916122d891614baf565b6001600160801b03166122eb9190614bd7565b9050846080015160800151856060015160200181815161230b9190614dc2565b6001600160801b0316905250608080860151015160608601516040018051612334908390614baf565b6001600160801b0316905250845160608601516001600160a01b038d169163a1b2bf8b916123619061317b565b6040518363ffffffff1660e01b815260040161237e929190614b96565b600060405180830381600087803b15801561239857600080fd5b505af11580156123ac573d6000803e3d6000fd5b505050506123bf8b8b8361089c90614c5c565b6001600160a01b038b1663cf97256d8b6123d884614c5c565b6040518363ffffffff1660e01b81526004016123f5929190614c78565b600060405180830381600087803b15801561240f57600080fd5b505af1158015612423573d6000803e3d6000fd5b505060405163cf97256d60e01b81526001600160a01b038e16925063cf97256d91506124559086908590600401614c78565b600060405180830381600087803b15801561246f57600080fd5b505af1158015612483573d6000803e3d6000fd5b5050506060808701515160808801516001600160801b039091169101525084516124b0908c908590614087565b60808601805163ffffffff909216909152604086015190516001600160a01b038d169163a1b2bf8b916124e290613219565b6040518363ffffffff1660e01b81526004016124ff929190614b96565b600060405180830381600087803b15801561251957600080fd5b505af115801561252d573d6000803e3d6000fd5b505064080000000060c0870152505060a085015161254d9085908861344a565b5050505b8763ffffffff16896001600160a01b03168b6001600160a01b03167f492d2641617cfaf24ac7328f85bc5bdf5113537d78dc7671afa4f49a73f053c2858560405161259d929190614d0d565b60405180910390a4816001600160a01b03168a6001600160a01b03167fc0b8396b655615cdb85fe462a9a1792480816f909cd46d9517a940b386dfbf6b8b8b856040516125ec93929190614d31565b60405180910390a35050505095945050505050565b60608060608060606126138787613dcf565b90925090506000612622614486565b82516001600160401b0381111561263b5761263b614e64565b604051908082528060200260200182016040528015612664578160200160208202803683370190505b50965082516001600160401b0381111561268057612680614e64565b6040519080825280602002602001820160405280156126a9578160200160208202803683370190505b50955082516001600160401b038111156126c5576126c5614e64565b6040519080825280602002602001820160405280156126ee578160200160208202803683370190505b50945060005b83518163ffffffff16101561284a576000858263ffffffff168151811061271d5761271d614e0f565b602002602001015190506000858363ffffffff168151811061274157612741614e0f565b602002602001015190506127558c82613ec2565b90955093508461276757612767614e25565b8163ffffffff16846000015163ffffffff161461278657612786614e25565b83602001518a8463ffffffff16815181106127a3576127a3614e0f565b60200260200101906001600160a01b031690816001600160a01b0316815250508360400151898463ffffffff16815181106127e0576127e0614e0f565b602002602001019063ffffffff16908163ffffffff16815250508360800151888463ffffffff168151811061281757612817614e0f565b60200260200101906001600160801b031690816001600160801b03168152505050508061284390614fd6565b90506126f4565b50505050509250925092565b6060600061289a8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b60608101519091506000806128b08a848b613b1e565b9150915060006128e0826040015183602001516128cd9190614dc2565b610587906001600160801b03168b614ded565b90506129048b858c86868688600001516128fa9190614dc2565b8b60a00151613b7c565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929e9d5050505050505050505050505050565b6000806000806000806000612978604080516060810182526000808252602082018190529181019190915290565b612980614486565b61298a8b8b613ec2565b9094509050836129cd5760405162461bcd60e51b815260206004820152600e60248201526d4944413a20455f4e4f5f5355425360901b60448201526064016103e8565b80602001519850806040015197506129e589896136bd565b92506129f18b84613724565b909450915083612a0357612a03614e25565b8051608082015163ffffffff918216909114159750955086612a595780608001516001600160801b031681606001518360000151612a419190614baf565b6001600160801b0316612a549190614d7a565b612a5c565b60005b9450505050509295509295909350565b60606000612ab08685858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b60608101519091506000612ac482886136bd565b9050612ad0888261412e565b15612b135760405162461bcd60e51b81526020600482015260136024820152724944413a20455f494e4445585f45584953545360681b60448201526064016103e8565b876001600160a01b03166312a6a3f882612b64604051806060016040528060006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b031681525061317b565b6040518363ffffffff1660e01b8152600401612b81929190614b96565b600060405180830381600087803b158015612b9b57600080fd5b505af1158015612baf573d6000803e3d6000fd5b505050508663ffffffff16826001600160a01b0316896001600160a01b03167f01ab8663165edfb7390d9e5f75d960a66dacf4f01fa9787e3a731c870d0da9218660a00151604051612c01919061467c565b60405180910390a485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929b9a5050505050505050505050565b612c546144b4565b336001600160a01b0316836001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc09190615004565b6001600160a01b031614612d0a5760405162461bcd60e51b81526020600482015260116024820152701d5b985d5d1a1bdc9a5e9959081a1bdcdd607a1b60448201526064016103e8565b604051632fd0a1cd60e21b8152339063bf42873490612d2d90859060040161467c565b602060405180830381865afa158015612d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6e9190615031565b612da85760405162461bcd60e51b815260206004820152600b60248201526a0d2dcecc2d8d2c840c6e8f60ab1b60448201526064016103e8565b604051631fb6491d60e11b81523390633f6c923a90612dcb90859060040161467c565b600060405180830381865afa158015612de8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e1091908101906150d8565b9392505050565b6040805160608101825260008082526020820181905291810182905281906000612e3f614486565b6000612e4b8a896136bd565b9550612e5789876141da565b9450612e638b87613724565b9450905080612e845760405162461bcd60e51b81526004016103e890614d99565b612e8e8b86613ec2565b90935091508615612f1b5782612ed75760405162461bcd60e51b815260206004820152600e60248201526d4944413a20455f4e4f5f5355425360901b60448201526064016103e8565b896001600160a01b031682602001516001600160a01b031614612efc57612efc614e25565b8763ffffffff16826040015163ffffffff1614612f1b57612f1b614e25565b509550955095509550959050565b612f3161444b565b6001600160a01b0394851681529290931660208301526040820152606081019190915290565b6020820151604051633e7d48bd60e21b81526001600160a01b03909116600482015260609060009081908190339063f9f522f490602401606060405180830381865afa158015612fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcf91906151de565b91945092509050828015612fe1575081155b15613105576000612ff2868861421b565b90508660c0015182166000036130f75760006130118860c00151614299565b88516040808b015160608c01518251600081526020810190935261303d9392309291906044810161521a565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352918a015160c08b01519251633a020f0160e11b815291935033926374041e02926130ac929186916410000000009190911490889060040161525f565b6000604051808303816000875af11580156130cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130f391908101906152a8565b9550505b613102866000614330565b50505b50505092915050565b60006001600160801b038211156131775760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016103e8565b5090565b604080516002808252606080830184529260208301908036833701905050905081600001516001600160801b0316600160801b1760001b816000815181106131c5576131c5614e0f565b602002602001018181525050608082604001516001600160801b0316901b82602001516001600160801b03161760001b8160018151811061320857613208614e0f565b602002602001018181525050919050565b6040805160028082526060808301845292602083019080368337019050509050816000015163ffffffff166020836040015163ffffffff16901b606084602001516001600160a01b0316901b171760001b8160008151811061327d5761327d614e0f565b602002602001018181525050608082608001516001600160801b0316901b82606001516001600160801b03161760001b8160018151811061320857613208614e0f565b6000838301826001600160801b0380871690831610156132f35760405162461bcd60e51b81526004016103e8919061467c565b50949350505050565b8060000361330957505050565b604051634b61cc3360e01b81526000906001600160a01b03851690634b61cc3390613344903090879064010000000090600190600401614e3b565b600060405180830381865afa158015613361573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133899190810190614f61565b9050816133b2826000815181106133a2576133a2614e0f565b602002602001015160001c614358565b6133bc9190614f95565b60001b816000815181106133d2576133d2614e0f565b602090810291909101015260405163048620af60e11b81526001600160a01b0385169063090c415e906134129086906401000000009086906004016152dc565b600060405180830381600087803b15801561342c57600080fd5b505af1158015613440573d6000803e3d6000fd5b5050505050505050565b6134526144b4565b6020840151604051633e7d48bd60e21b81526001600160a01b03909116600482015260609060009081908190339063f9f522f490602401606060405180830381865afa1580156134a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ca91906151de565b889650919450925090508280156134df575081155b156136b2576134ee848961421b565b93508760c0015181166000036136a057600061350d8960c00151614299565b89516040808c015160608d01518251600081526020810190935261353b9392309291908e9060448101615303565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352918b015160c08c0151925163079b42a160e21b81529193503392631e6d0a84926135aa9291869164200000000091909114908b9060040161525f565b6000604051808303816000875af11580156135c9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135f191908101906152a8565b604051631fb6491d60e11b81529095503390633f6c923a9061361790889060040161467c565b600060405180830381865afa158015613634573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261365c91908101906150d8565b955061369860006136936136738c60800151614358565b61368e6136838b60e00151614358565b8b61010001516143c2565b6143d8565b6143c2565b610100870152505b6136af86866101000151614330565b93505b505050935093915050565b60405168383ab13634b9b432b960b91b60208201526bffffffffffffffffffffffff19606084901b1660298201526001600160e01b031960e083901b16603d8201526000906041015b60405160208183030381529060405280519060200120905092915050565b60408051606081018252600080825260208201819052918101829052604051636c2d9f2f60e01b815230600482015260248101849052600260448201526000906001600160a01b03861690636c2d9f2f90606401600060405180830381865afa158015613795573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137bd9190810190614f61565b90506000816000815181106137d4576137d4614e0f565b602002602001015160001c90506000826001815181106137f6576137f6614e0f565b602002602001015160001c9050600082119450841561382e576001600160801b03808316855281166020850152608081901c60408501525b5050509250929050565b6000836001600160801b0316836001600160801b03161115829061386f5760405162461bcd60e51b81526004016103e8919061467c565b50600061387c8486614baf565b95945050505050565b604051631528e57f60e31b81526001600160a01b038085166004830152831660248201526000604482015263ffffffff8216606482015273__SlotsBitmapLibrary____________________9063a9472bf89060840160006040518083038186803b1580156138f357600080fd5b505af4158015613907573d6000803e3d6000fd5b50505050505050565b600061393a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036139905760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016103e8565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f29190614d61565b6139fa611224565b14613a535760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016103e8565b6001600160a01b0381163003613aab5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016103e8565b613ad3817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc613afc611224565b604080519182526001600160a01b03841660208301520160405180910390a150565b604080516060810182526000808252602082018190529181018290526000613b4685856136bd565b9250613b528684613724565b9250905080613b735760405162461bcd60e51b81526004016103e890614d99565b50935093915050565b866001600160a01b031663cf97256d8785602001516001600160801b0316866000015186613baa9190614baf565b6001600160801b0316613bbc90614c5c565b613bc69190614bd7565b6040518363ffffffff1660e01b8152600401613be3929190614c78565b600060405180830381600087803b158015613bfd57600080fd5b505af1158015613c11573d6000803e3d6000fd5b50505050613c4b878785604001516001600160801b0316866000015186613c389190614baf565b6001600160801b031661089c9190614bd7565b82516001600160801b03831684526001600160a01b03881663a1b2bf8b86613c728761317b565b6040518363ffffffff1660e01b8152600401613c8f929190614b96565b600060405180830381600087803b158015613ca957600080fd5b505af1158015613cbd573d6000803e3d6000fd5b505050508563ffffffff16876001600160a01b0316896001600160a01b03167f81e37f3d9f16cbf29a62d6a1c21d79b23ef29b54124ec44af43a50fffb9304f3848789604001518a6020015189604051613d1b959493929190615369565b60405180910390a46040516379359f6f60e01b81526001600160a01b0388811660048301528916906379359f6f90602401602060405180830381865afa158015613d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d8d9190615031565b156134405760405162461bcd60e51b81526020600482015260126024820152714944413a20455f4c4f575f42414c414e434560701b60448201526064016103e8565b60608073__SlotsBitmapLibrary____________________6306967a8c85856000600160801b6040518563ffffffff1660e01b8152600401613e149493929190614e3b565b600060405180830381865af4158015613e31573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e5991908101906153a5565b909250905060005b8151811015613eba57613e8d84838381518110613e8057613e80614e0f565b60200260200101516141da565b828281518110613e9f57613e9f614e0f565b6020908102919091010152613eb381615469565b9050613e61565b509250929050565b6000613ecc614486565b604051636c2d9f2f60e01b815230600482015260248101849052600260448201526000906001600160a01b03861690636c2d9f2f90606401600060405180830381865afa158015613f21573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613f499190810190614f61565b9050600081600081518110613f6057613f60614e0f565b602002602001015160001c9050600082600181518110613f8257613f82614e0f565b602002602001015160001c9050600082119450841561382e57606082811c60208087019190915283901c63ffffffff9081166040870152831685526001600160801b03821690850152608081811c908501525050509250929050565b600080836001600160a01b0316634b61cc33308564010000000060016040518563ffffffff1660e01b81526004016140199493929190614e3b565b600060405180830381865afa158015614036573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261405e9190810190614f61565b90508060008151811061407357614073614e0f565b602002602001015160001c91505092915050565b604051630a32470160e41b81526001600160a01b03808516600483015283166024820152600060448201819052600160801b6064830152608482018390529073__SlotsBitmapLibrary____________________9063a32470109060a401602060405180830381865af4158015614102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141269190615482565b949350505050565b604051636c2d9f2f60e01b8152306004820152602481018290526002604482015260009081906001600160a01b03851690636c2d9f2f90606401600060405180830381865afa158015614185573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526141ad9190810190614f61565b90506000816000815181106141c4576141c4614e0f565b6020908102919091010151151595945050505050565b604080516b39bab139b1b934b83a34b7b760a11b6020820152606084811b6bffffffffffffffffffffffff1916602c83015291810183905260009101613706565b6020810151608082015160a08301518351604051630768fabb60e41b8152606094339463768fabb094614252948a9460040161549f565b6000604051808303816000875af1158015614271573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e1091908101906152a8565b600064010000000082036142b557506330d9c91560e01b919050565b64040000000082036142cf5750630221347d60e61b919050565b64100000000082036142e95750635f9e7d7760e01b919050565b6402000000008203614303575063d86ed3e560e01b919050565b640800000000820361431d575063230dbd2960e01b919050565b506353c11f9960e01b919050565b919050565b604051634c4d861f60e11b8152606090339063989b0c3e9061425290869086906004016154e4565b60006001600160ff1b038211156131775760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016103e8565b60008183136143d15781612e10565b5090919050565b60008183136143e75782612e10565b50919050565b6040805160c0810182526000808252602082018190529181019190915260608101614431604080516060810182526000808252602082018190529181019190915290565b815260200161443e614486565b8152602001606081525090565b6040805160e0810182526000808252602082018190529181018290526060808201526080810182905260a0810182905260c081019190915290565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6001600160a01b03811681146111f257600080fd5b63ffffffff811681146111f257600080fd5b80356001600160801b038116811461432b57600080fd5b60008083601f84011261455f57600080fd5b5081356001600160401b0381111561457657600080fd5b60208301915083602082850101111561458e57600080fd5b9250929050565b60008060008060008060a087890312156145ae57600080fd5b86356145b98161450f565b955060208701356145c981614524565b945060408701356145d98161450f565b93506145e760608801614536565b925060808701356001600160401b0381111561460257600080fd5b61460e89828a0161454d565b979a9699509497509295939492505050565b60005b8381101561463b578181015183820152602001614623565b8381111561464a576000848401525b50505050565b60008151808452614668816020860160208601614620565b601f01601f19169290920160200192915050565b602081526000612e106020830184614650565b6000806000606084860312156146a457600080fd5b83356146af8161450f565b925060208401356146bf8161450f565b915060408401356146cf81614524565b809150509250925092565b60008060008060008060a087890312156146f357600080fd5b86356146fe8161450f565b9550602087013561470e8161450f565b9450604087013561471e81614524565b935060608701356145e78161450f565b60006020828403121561474057600080fd5b8135612e108161450f565b6000806000806080858703121561476157600080fd5b843561476c8161450f565b9350602085013561477c8161450f565b9250604085013561478c81614524565b9150606085013561479c8161450f565b939692955090935050565b6000806000806000608086880312156147bf57600080fd5b85356147ca8161450f565b945060208601356147da8161450f565b935060408601356147ea81614524565b925060608601356001600160401b0381111561480557600080fd5b6148118882890161454d565b969995985093965092949392505050565b60008060008060006080868803121561483a57600080fd5b85356148458161450f565b9450602086013561485581614524565b93506147ea60408701614536565b6000806000806080858703121561487957600080fd5b84356148848161450f565b935060208501356148948161450f565b925060408501356148a481614524565b9396929550929360600135925050565b6000806000606084860312156148c957600080fd5b83356148d48161450f565b925060208401356148e48161450f565b929592945050506040919091013590565b6000806040838503121561490857600080fd5b82356149138161450f565b915060208301356149238161450f565b809150509250929050565b600081518084526020808501945080840160005b838110156149675781516001600160801b031687529582019590820190600101614942565b509495945050505050565b606080825284519082018190526000906020906080840190828801845b828110156149b45781516001600160a01b03168452928401929084019060010161498f565b5050508381038285015285518082528683019183019060005b818110156149ef57835163ffffffff16835292840192918401916001016149cd565b50508481036040860152614a03818761492e565b98975050505050505050565b600080600080600060808688031215614a2757600080fd5b8535614a328161450f565b94506020860135614a4281614524565b93506040860135925060608601356001600160401b0381111561480557600080fd5b60008060408385031215614a7757600080fd5b8235614a828161450f565b946020939093013593505050565b60008060008060608587031215614aa657600080fd5b8435614ab18161450f565b93506020850135614ac181614524565b925060408501356001600160401b03811115614adc57600080fd5b614ae88782880161454d565b95989497509550505050565b6020808252601390820152724944413a20455f4e4f5f5a45524f5f5355425360681b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115614b4a57614b4a614b21565b500190565b600082821015614b6157614b61614b21565b500390565b600081518084526020808501945080840160005b8381101561496757815187529582019590820190600101614b7a565b8281526040602082015260006141266040830184614b66565b60006001600160801b0383811690831681811015614bcf57614bcf614b21565b039392505050565b60006001600160ff1b0381841382841380821686840486111615614bfd57614bfd614b21565b600160ff1b6000871282811687830589121615614c1c57614c1c614b21565b60008712925087820587128484161615614c3857614c38614b21565b87850587128184161615614c4e57614c4e614b21565b505050929093029392505050565b6000600160ff1b8201614c7157614c71614b21565b5060000390565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03841681526001600160801b038316602082015260606040820181905260009061387c90830184614650565b6001600160a01b038516815263ffffffff841660208201526001600160801b0383166040820152608060608201819052600090614d0390830184614650565b9695505050505050565b6001600160a01b038316815260406020820181905260009061412690830184614650565b6001600160a01b038416815263ffffffff8316602082015260606040820181905260009061387c90830184614650565b600060208284031215614d7357600080fd5b5051919050565b6000816000190483118215151615614d9457614d94614b21565b500290565b6020808252600f908201526e092888274408abe9c9ebe929c888ab608b1b604082015260600190565b60006001600160801b03808316818516808303821115614de457614de4614b21565b01949350505050565b600082614e0a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715614e9d57614e9d614e64565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614ecb57614ecb614e64565b604052919050565b60006001600160401b03821115614eec57614eec614e64565b5060051b60200190565b600082601f830112614f0757600080fd5b81516020614f1c614f1783614ed3565b614ea3565b82815260059290921b84018101918181019086841115614f3b57600080fd5b8286015b84811015614f565780518352918301918301614f3f565b509695505050505050565b600060208284031215614f7357600080fd5b81516001600160401b03811115614f8957600080fd5b61412684828501614ef6565b600080821280156001600160ff1b0384900385131615614fb757614fb7614b21565b600160ff1b8390038412811615614fd057614fd0614b21565b50500190565b600063ffffffff808316818103614fef57614fef614b21565b6001019392505050565b805161432b8161450f565b60006020828403121561501657600080fd5b8151612e108161450f565b8051801515811461432b57600080fd5b60006020828403121561504357600080fd5b612e1082615021565b805160ff8116811461432b57600080fd5b80516001600160e01b03198116811461432b57600080fd5b600082601f83011261508657600080fd5b81516001600160401b0381111561509f5761509f614e64565b6150b2601f8201601f1916602001614ea3565b8181528460208386010111156150c757600080fd5b614126826020830160208701614620565b6000602082840312156150ea57600080fd5b81516001600160401b038082111561510157600080fd5b90830190610160828603121561511657600080fd5b61511e614e7a565b6151278361504c565b81526151356020840161504c565b60208201526040830151604082015261515060608401614ff9565b60608201526151616080840161505d565b608082015260a08301518281111561517857600080fd5b61518487828601615075565b60a08301525060c083015160c082015260e083015160e08201526101009150818301518282015261012091506151bb828401614ff9565b8282015261014091506151cf828401614ff9565b91810191909152949350505050565b6000806000606084860312156151f357600080fd5b6151fc84615021565b925061520a60208501615021565b9150604084015190509250925092565b6001600160a01b038681168252851660208201526040810184905260a06060820181905260009061524d90830185614650565b8281036080840152614a038185614650565b6001600160a01b038516815260806020820181905260009061528390830186614650565b8415156040840152828103606084015261529d8185614650565b979650505050505050565b6000602082840312156152ba57600080fd5b81516001600160401b038111156152d057600080fd5b61412684828501615075565b60018060a01b038416815282602082015260606040820152600061387c6060830184614b66565b6001600160a01b038781168252861660208201526040810185905260c06060820181905260009061533690830186614650565b82810360808401526153488186614650565b905082810360a084015261535c8185614650565b9998505050505050505050565b60006001600160801b0380881683528087166020840152808616604084015280851660608401525060a0608083015261529d60a0830184614650565b600080604083850312156153b857600080fd5b82516001600160401b03808211156153cf57600080fd5b818501915085601f8301126153e357600080fd5b815160206153f3614f1783614ed3565b82815260059290921b8401810191818101908984111561541257600080fd5b948201945b8386101561543957855161542a81614524565b82529482019490820190615417565b9188015191965090935050508082111561545257600080fd5b5061545f85828601614ef6565b9150509250929050565b60006001820161547b5761547b614b21565b5060010190565b60006020828403121561549457600080fd5b8151612e1081614524565b60a0815260006154b260a0830188614650565b6001600160a01b0396871660208401526040830195909552506060810192909252909216608090920191909152919050565b6040815260006154f76040830185614650565b9050826020830152939250505056fea26469706673582212205048c9ba3bce9183a7426984945ee8ac0c37983512aa86f6d5b4eab612a1064a64736f6c634300080d0033608060405234801561001057600080fd5b50614a03806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b61004361003e3660046100ae565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008160405161006e906100a1565b6001600160a01b039091168152602001604051809103906000f08015801561009a573d6000803e3d6000fd5b5092915050565b6148ef806100df83390190565b6000602082840312156100c057600080fd5b81356001600160a01b03811681146100d757600080fd5b939250505056fe60a06040523480156200001157600080fd5b50604051620048ef380380620048ef833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516147f2620000fd600039600081816103f701528181610a8101528181610aef01528181610b8501528181610c1c01528181610e7101528181610fcb0152818161109a015281816112b1015281816113ff015281816115930152818161187a0152818161193c015281816119c3015281816132f7015261357701526147f26000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806362aa5287116101b8578063a9059cbb11610104578063d9d078d6116100a2578063ee719bc81161007c578063ee719bc81461076f578063fad8b32a14610780578063fc673c4f14610793578063fe9d9303146107a657600080fd5b8063d9d078d6146106f5578063dd62ed3e14610708578063eb3537cc1461074157600080fd5b8063c68d4283116100de578063c68d4283146106a9578063ca789464146106bc578063cf97256d146106cf578063d95b6371146106e257600080fd5b8063a9059cbb14610670578063b84cdd4a14610683578063bb0d196e1461069657600080fd5b8063959b8c3f116101715780639d8767411161014b5780639d87674114610624578063a1b2bf8b14610637578063a3a7e7f31461064a578063a457c2d71461065d57600080fd5b8063959b8c3f146105f657806395d89b41146106095780639bd9bbc61461061157600080fd5b806362aa52871461058457806362ad1b831461059757806366a12fb6146105aa5780636c2d9f2f146105bd57806370a08231146105d057806379359f6f146105e357600080fd5b80632ec8eec71161027757806345977d031161023057806350d75d251161020a57806350d75d251461053c57806352d1902d14610544578063556f0dc71461056a5780635b9d09cc1461057157600080fd5b806345977d03146104f657806346951954146105095780634b61cc331461051c57600080fd5b80632ec8eec714610468578063313ce5671461049b578063386fa221146104aa57806339509351146104bd57806341b706be146104d057806342fe0980146104e357600080fd5b806316d055d6116102e457806320bc4425116102be57806320bc4425146103f557806323b872dd1461042f578063245887fc14610442578063270483971461045557600080fd5b806316d055d6146103bd57806318160ddd146103d05780631863e809146103e257600080fd5b806306e485381461032c57806306fdde031461034a578063090c415e1461035f578063095ea7b31461037457806311bcc81e1461039757806312a6a3f8146103aa575b600080fd5b6103346107b9565b6040516103419190613856565b60405180910390f35b6103526107ca565b60405161034191906138fb565b61037261036d36600461396e565b61085c565b005b6103876103823660046139c9565b610910565b6040519015158152602001610341565b6103726103a53660046139f5565b610927565b6103726103b8366004613a0e565b610955565b6103726103cb366004613a59565b610a7f565b6003545b604051908152602001610341565b6103726103f0366004613b6d565b610ada565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610341565b61038761043d366004613bff565b610e57565b6103726104503660046139c9565b610e6f565b610372610463366004613c40565b610ee6565b61047b610476366004613c62565b610fc3565b604080519485526020850193909352918301526060820152608001610341565b60405160128152602001610341565b6103346104b8366004613c62565b611066565b6103876104cb3660046139c9565b611109565b6103726104de366004613a59565b611145565b6103726104f1366004613cc0565b611170565b6103726105043660046139f5565b61127a565b610372610517366004613c62565b6112a6565b61052f61052a366004613d5a565b611335565b6040516103419190613da0565b61041761137a565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196103d4565b60016103d4565b61037261057f366004613dd8565b6113a4565b610372610592366004613bff565b6113fd565b6103726105a5366004613e27565b611455565b6103726105b8366004613bff565b611502565b61052f6105cb366004613ec5565b611521565b6103d46105de366004613c62565b611563565b6103876105f1366004613c62565b61158b565b610372610604366004613c62565b611613565b610352611664565b61037261061f366004613dd8565b611673565b610372610632366004613efa565b6116c7565b610372610645366004613a0e565b611706565b610372610658366004613c62565b6117b0565b61038761066b3660046139c9565b6117c4565b61038761067e3660046139c9565b611813565b6103876106913660046139c9565b611821565b6103876106a4366004613c62565b611872565b6103726106b7366004613efa565b6118fa565b6103726106ca3660046139c9565b61193a565b6103726106dd3660046139c9565b6119ae565b6103876106f0366004613f52565b611a96565b6103876107033660046139c9565b611aa4565b6103d4610716366004613f52565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b61075461074f3660046139c9565b611abe565b60408051938452602084019290925290820152606001610341565b600e546001600160a01b0316610417565b61037261078e366004613c62565b611bfa565b6103726107a1366004613f8b565b611c4b565b6103726107b4366004613fd2565b611cea565b60606107c56012611d3a565b905090565b6060600f80546107d990614010565b80601f016020809104026020016040519081016040528092919081815260200182805461080590614010565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b60003385856040516020016108739392919061404a565b6040516020818303038152906040528051906020012090506108c881848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b600061091d338484611de1565b5060015b92915050565b6109523333836040518060200160405280600081525060405180602001604052806000815250611f08565b50565b604051339060009061096d9083908790602001614093565b60408051601f198184030181529190528051602090910120905061099181846120ef565b156109f65760405162461bcd60e51b815260206004820152602a60248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420616c726561604482015269191e4818dc99585d195960b21b60648201526084015b60405180910390fd5b610a3381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610a70939291906140d0565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ac75760405162461bcd60e51b81526004016109ed90614114565b610ad38484848461212b565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b62919061415f565b610b7e5760405162461bcd60e51b81526004016109ed9061417c565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0591906141c3565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf91906141c3565b9250829150506001600160a01b038116610cd7578691505b8515610d2757610ce684612249565b6001600160a01b038316600090815260026020526040902054610d0991906141f6565b6001600160a01b038316600090815260026020526040902055610dbd565b610d3084612249565b6001600160a01b038816600090815260026020526040902054610d5391906141f6565b6001600160a01b03881660009081526002602052604090205582610d7685612249565b6001600160a01b038416600090815260026020526040902054610d999190614237565b610da39190614237565b6001600160a01b0383166000908152600260205260409020555b6001600160a01b038516600090815260026020526040902054610de19084906141f6565b6001600160a01b038087166000818152600260205260409020929092558816337fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8a610e2e578b610e30565b865b89898f604051610e44959493929190614276565b60405180910390a4505050505050505050565b6000610e653385858561212b565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610eb75760405162461bcd60e51b81526004016109ed90614114565b610ee23383836040518060200160405280600081525060405180602001604052806000815250611f08565b5050565b6040513390600090610efe9083908690602001614093565b604051602081830303815290604052805190602001209050610f2081846120ef565b610f7e5760405162461bcd60e51b815260206004820152602960248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420646f6573206044820152681b9bdd08195e1a5cdd60ba1b60648201526084016109ed565b610f8881846122b7565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b91906142a9565b90506110578582611abe565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa1580156110e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092191908101906142c2565b3360008181526011602090815260408083206001600160a01b0387168452909152812054909161091d918590611140908690614373565b611de1565b3330146111645760405162461bcd60e51b81526004016109ed9061438b565b610ad38385848461212b565b600054610100900460ff1661118b5760005460ff161561118f565b303b155b6111f25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109ed565b600054610100900460ff16158015611214576000805461ffff19166101011790555b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055611248600f86866137c6565b50611255601084846137c6565b5061125f306122d8565b8015611271576000805461ff00191690555b50505050505050565b610952333333846040518060200160405280600081525060405180602001604052806000815250612406565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461132c5760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a206f6e6c7920686f73742063616e2075706461746560448201526420636f646560d81b60648201526084016109ed565b61095281612609565b6060600085858560405160200161134e9392919061404a565b6040516020818303038152906040528051906020012090506113708184612849565b9695505050505050565b60006107c57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6113f7333386866040518060200160405280600081525087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061240692505050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146114455760405162461bcd60e51b81526004016109ed90614114565b611450838383611de1565b505050565b336114626012828a6128d8565b61147e5760405162461bcd60e51b81526004016109ed906143c2565b6114f88189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250612981915050565b5050505050505050565b3330146114455760405162461bcd60e51b81526004016109ed9061438b565b606060008484604051602001611538929190614093565b60405160208183030381529060405280519060200120905061155a8184612849565b95945050505050565b60008061156f83610fc3565b5050509050600081126115825780610e68565b60009392505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070391906142a9565b33611620601282846129f8565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546107d990614010565b6113f73333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506129819050565b3330146116e65760405162461bcd60e51b81526004016109ed9061438b565b604080516000815260208101909152611450903390859085908590612afc565b604051339060009061171e9083908790602001614093565b60405160208183030381529060405280519060200120905061177381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610a70939291906140d0565b610ee23333836117bf33611563565b61212b565b600061091d3384611140856040518060600160405280602a8152602001614766602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190612c03565b6000610e683333858561212b565b6000806000806118318686611abe565b925092509250600061185982841161184a576000612249565b6118548385614412565b612249565b61186390856141f6565b60001315979650505050505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069191906142a9565b3330146119195760405162461bcd60e51b81526004016109ed9061438b565b60408051600080825260208201909252611450913391869186918690612c2f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146119825760405162461bcd60e51b81526004016109ed90614114565b610ee2338384846040518060200160405280600081525060405180602001604052806000815250612406565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a36919061415f565b611a525760405162461bcd60e51b81526004016109ed9061417c565b6001600160a01b038216600090815260026020526040902054611a769082906141f6565b6001600160a01b0390921660009081526002602052604090209190915550565b6000610e68601284846128d8565b600080611ab18484611abe565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080611ae386611066565b905060005b8151811015611bf1576000806000848481518110611b0857611b08614429565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015611b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8b919061443f565b91945092509050611b9c8288614373565b9650611ba88187614373565b9550611bc5818311611bbb576000612249565b6118548284614412565b611bcf848a6141f6565b611bd99190614237565b97505050508080611be99061446d565b915050611ae8565b50509250925092565b33611c0760128284612d38565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b33611c58601282896128d8565b611c745760405162461bcd60e51b81526004016109ed906143c2565b61127181888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250611f0892505050565b61145033338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611f08915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611d9457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d76575b50505050509050919050565b60005b8151811015611450576000828281518110611dc057611dc0614429565b6020026020010151905080828501555080611dda9061446d565b9050611da3565b6001600160a01b038316611e455760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a20617070726f76652066726f6d207a65726f206164604482015264647265737360d81b60648201526084016109ed565b6001600160a01b038216611ea75760405162461bcd60e51b815260206004820152602360248201527f5375706572546f6b656e3a20617070726f766520746f207a65726f206164647260448201526265737360e81b60648201526084016109ed565b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b0316611f605760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b600080611f6c85612e30565b91509150611f7d8787838787612afc565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fea91906142a9565b600e54909150612004906001600160a01b03168885612eec565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561204d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207191906142a9565b9050600061207f8284614412565b90508085146120a05760405162461bcd60e51b81526004016109ed90614486565b886001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516120db91815260200190565b60405180910390a250505050505050505050565b6000805b828110156121215783810154801561211057600192505050610921565b5061211a8161446d565b90506120f3565b5060009392505050565b60006001600160a01b0384166121535760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0383166121795760405162461bcd60e51b81526004016109ed90614529565b60003390506121aa818686866040518060200160405280600081525060405180602001604052806000815250612f4f565b846001600160a01b0316866001600160a01b03161461223d5761223d8587611140866040518060600160405280602d8152602001614790602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054612c039092919063ffffffff16565b50600195945050505050565b60006001600160ff1b038211156122b35760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016109ed565b5090565b60005b81811015611450576000838201556122d18161446d565b90506122ba565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156123f257600080fd5b505af1158015610ad3573d6000803e3d6000fd5b600e546001600160a01b031661245e5760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b60008061246a85612e30565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156124bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124df91906142a9565b600e549091506124fa906001600160a01b0316893086613000565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612543573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256791906142a9565b905060006125758383614412565b90508085146125965760405162461bcd60e51b81526004016109ed90614486565b6125b98b8a868c6001600160a01b03168e6001600160a01b031614158b8b612c2f565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516125f491815260200190565b60405180910390a25050505050505050505050565b60006126337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036126895760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016109ed565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126eb91906142a9565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146127655760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016109ed565b6001600160a01b03811630036127bd5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016109ed565b6127e5817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b03841660208301520160405180910390a150565b6060816001600160401b0381111561286357612863613aaa565b60405190808252806020026020018201604052801561288c578160200160208202803683370190505b50905060005b828110156128d1576000818501549050808383815181106128b5576128b5614429565b6020908102919091010152506128ca8161446d565b9050612892565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061294757506001600160a01b038316600090815260018501602052604090205460ff16801561294757506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610e6557506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166129a75760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0385166129cd5760405162461bcd60e51b81526004016109ed90614529565b6129db878787878787613038565b6129e9878787878787612f4f565b6112718787878787878761315f565b806001600160a01b0316826001600160a01b031603612a6f5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612ac5576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b038416612b5d5760405162461bcd60e51b815260206004820152602260248201527f5375706572546f6b656e3a206275726e2066726f6d207a65726f206164647265604482015261737360f01b60648201526084016109ed565b612b6c85856000868686613038565b612b7684846132ef565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612bbd9392919061456d565b60405180910390a36040518381526000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610901565b60008184841115612c275760405162461bcd60e51b81526004016109ed91906138fb565b505050900390565b6001600160a01b038516612c855760405162461bcd60e51b815260206004820181905260248201527f5375706572546f6b656e3a206d696e7420746f207a65726f206164647265737360448201526064016109ed565b612c8f8585613443565b612c9f866000878786868961315f565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612ce69392919061456d565b60405180910390a36040518481526001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3505050505050565b336001600160a01b03821603612da35760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612dfd576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b600e54600090819081906012600160a01b90910460ff161015612e8f57600e54612e6590600160a01b900460ff166012614598565b612e7090600a61469f565b9050612e7c81856146ae565b9250612e8881846146d0565b9150612ee6565b600e546012600160a01b90910460ff161115612edf57600e54612ebe90601290600160a01b900460ff16614598565b612ec990600a61469f565b9050612ed581856146d0565b9250839150612ee6565b8391508192505b50915091565b6040516001600160a01b03831660248201526044810182905261145090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261349d565b612f628585612f5d86612249565b61356f565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051612fb39392919061456d565b60405180910390a4836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612d2891815260200190565b6040516001600160a01b03808516602483015283166044820152606481018290526113f79085906323b872dd60e01b90608401612f18565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156130b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130dd91906141c3565b90506001600160a01b0381161561127157604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613124908a908a908a908a908a908a906004016146ef565b600060405180830381600087803b15801561313e57600080fd5b505af1158015613152573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156131e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061320491906141c3565b90506001600160a01b03811615613280576040516223de2960e01b81526001600160a01b038216906223de2990613249908b908b908b908b908b908b906004016146ef565b600060405180830381600087803b15801561326357600080fd5b505af1158015613277573d6000803e3d6000fd5b505050506114f8565b81156114f8576001600160a01b0386163b156114f85760405162461bcd60e51b815260206004820152602860248201527f5375706572546f6b656e3a206e6f7420616e20455243373737546f6b656e73526044820152671958da5c1a595b9d60c21b60648201526084016109ed565b6000613377837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f91906142a9565b5050905061338482612249565b8112156133e85760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206275726e20616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6133f182612249565b6001600160a01b0384166000908152600260205260409020546134149190614237565b6001600160a01b03841660009081526002602052604090205560035461343b908390614412565b600355505050565b61344c81612249565b6001600160a01b03831660009081526002602052604090205461346f91906141f6565b6001600160a01b038316600090815260026020526040902055600354613496908290614373565b6003555050565b60006134f2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136b29092919063ffffffff16565b8051909150156114505780806020019051810190613510919061415f565b6114505760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109ed565b60006135d3847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505090508181121561363c5760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206d6f766520616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6001600160a01b038416600090815260026020526040902054613660908390614237565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546136909083906141f6565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610e658484600085856001600160a01b0385163b6137145760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ed565b600080866001600160a01b031685876040516137309190614749565b60006040518083038185875af1925050503d806000811461376d576040519150601f19603f3d011682016040523d82523d6000602084013e613772565b606091505b509150915061378282828661378d565b979650505050505050565b6060831561379c575081610e68565b8251156137ac5782518084602001fd5b8160405162461bcd60e51b81526004016109ed91906138fb565b8280546137d290614010565b90600052602060002090601f0160209004810192826137f4576000855561383a565b82601f1061380d5782800160ff1982351617855561383a565b8280016001018555821561383a579182015b8281111561383a57823582559160200191906001019061381f565b506122b39291505b808211156122b35760008155600101613842565b6020808252825182820181905260009190848201906040850190845b818110156138975783516001600160a01b031683529284019291840191600101613872565b50909695505050505050565b60005b838110156138be5781810151838201526020016138a6565b838111156113f75750506000910152565b600081518084526138e78160208601602086016138a3565b601f01601f19169290920160200192915050565b602081526000610e6860208301846138cf565b6001600160a01b038116811461095257600080fd5b60008083601f84011261393557600080fd5b5081356001600160401b0381111561394c57600080fd5b6020830191508360208260051b850101111561396757600080fd5b9250929050565b6000806000806060858703121561398457600080fd5b843561398f8161390e565b93506020850135925060408501356001600160401b038111156139b157600080fd5b6139bd87828801613923565b95989497509550505050565b600080604083850312156139dc57600080fd5b82356139e78161390e565b946020939093013593505050565b600060208284031215613a0757600080fd5b5035919050565b600080600060408486031215613a2357600080fd5b8335925060208401356001600160401b03811115613a4057600080fd5b613a4c86828701613923565b9497909650939450505050565b60008060008060808587031215613a6f57600080fd5b8435613a7a8161390e565b93506020850135613a8a8161390e565b92506040850135613a9a8161390e565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ae857613ae8613aaa565b604052919050565b600082601f830112613b0157600080fd5b81356001600160401b03811115613b1a57613b1a613aaa565b613b2d601f8201601f1916602001613ac0565b818152846020838601011115613b4257600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461095257600080fd5b600080600080600080600060e0888a031215613b8857600080fd5b8735965060208801356001600160401b03811115613ba557600080fd5b613bb18a828b01613af0565b9650506040880135613bc28161390e565b94506060880135613bd281613b5f565b93506080880135613be28161390e565b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215613c1457600080fd5b8335613c1f8161390e565b92506020840135613c2f8161390e565b929592945050506040919091013590565b60008060408385031215613c5357600080fd5b50508035926020909101359150565b600060208284031215613c7457600080fd5b8135610e688161390e565b60008083601f840112613c9157600080fd5b5081356001600160401b03811115613ca857600080fd5b60208301915083602082850101111561396757600080fd5b60008060008060008060808789031215613cd957600080fd5b8635613ce48161390e565b9550602087013560ff81168114613cfa57600080fd5b945060408701356001600160401b0380821115613d1657600080fd5b613d228a838b01613c7f565b90965094506060890135915080821115613d3b57600080fd5b50613d4889828a01613c7f565b979a9699509497509295939492505050565b60008060008060808587031215613d7057600080fd5b8435613d7b8161390e565b93506020850135613d8b8161390e565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b8181101561389757835183529284019291840191600101613dbc565b60008060008060608587031215613dee57600080fd5b8435613df98161390e565b93506020850135925060408501356001600160401b03811115613e1b57600080fd5b6139bd87828801613c7f565b600080600080600080600060a0888a031215613e4257600080fd5b8735613e4d8161390e565b96506020880135613e5d8161390e565b95506040880135945060608801356001600160401b0380821115613e8057600080fd5b613e8c8b838c01613c7f565b909650945060808a0135915080821115613ea557600080fd5b50613eb28a828b01613c7f565b989b979a50959850939692959293505050565b600080600060608486031215613eda57600080fd5b8335613ee58161390e565b95602085013595506040909401359392505050565b600080600060608486031215613f0f57600080fd5b8335613f1a8161390e565b92506020840135915060408401356001600160401b03811115613f3c57600080fd5b613f4886828701613af0565b9150509250925092565b60008060408385031215613f6557600080fd5b8235613f708161390e565b91506020830135613f808161390e565b809150509250929050565b60008060008060008060808789031215613fa457600080fd5b8635613faf8161390e565b95506020870135945060408701356001600160401b0380821115613d1657600080fd5b600080600060408486031215613fe757600080fd5b8335925060208401356001600160401b0381111561400457600080fd5b613a4c86828701613c7f565b600181811c9082168061402457607f821691505b60208210810361404457634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b038311156140f757600080fd5b8260051b8085606085013760009201606001918252509392505050565b6020808252602b908201527f5375706572666c756964546f6b656e3a204f6e6c7920686f737420636f6e747260408201526a1858dd08185b1b1bddd95960aa1b606082015260800190565b60006020828403121561417157600080fd5b8151610e6881613b5f565b60208082526027908201527f5375706572666c756964546f6b656e3a206f6e6c79206c6973746564206167726040820152661959595b595b9d60ca1b606082015260800190565b6000602082840312156141d557600080fd5b8151610e688161390e565b634e487b7160e01b600052601160045260246000fd5b600080821280156001600160ff1b0384900385131615614218576142186141e0565b600160ff1b8390038412811615614231576142316141e0565b50500190565b60008083128015600160ff1b850184121615614255576142556141e0565b6001600160ff1b0384018313811615614270576142706141e0565b50500390565b85815260018060a01b038516602082015283604082015282606082015260a06080820152600061378260a08301846138cf565b6000602082840312156142bb57600080fd5b5051919050565b600060208083850312156142d557600080fd5b82516001600160401b03808211156142ec57600080fd5b818501915085601f83011261430057600080fd5b81518181111561431257614312613aaa565b8060051b9150614323848301613ac0565b818152918301840191848101908884111561433d57600080fd5b938501935b8385101561436757845192506143578361390e565b8282529385019390850190614342565b98975050505050505050565b60008219821115614386576143866141e0565b500190565b6020808252601d908201527f5375706572546f6b656e3a206f6e6c792073656c6620616c6c6f776564000000604082015260600190565b60208082526030908201527f5375706572546f6b656e3a2063616c6c6572206973206e6f7420616e206f706560408201526f3930ba37b9103337b9103437b63232b960811b606082015260800190565b600082821015614424576144246141e0565b500390565b634e487b7160e01b600052603260045260246000fd5b60008060006060848603121561445457600080fd5b8351925060208401519150604084015190509250925092565b60006001820161447f5761447f6141e0565b5060010190565b6020808252603a908201527f5375706572546f6b656e3a20696e666c6174696f6e6172792f6465666c61746960408201527f6f6e61727920746f6b656e73206e6f7420737570706f72746564000000000000606082015260800190565b60208082526026908201527f5375706572546f6b656e3a207472616e736665722066726f6d207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f5375706572546f6b656e3a207472616e7366657220746f207a65726f206164646040820152637265737360e01b606082015260800190565b83815260606020820152600061458660608301856138cf565b828103604084015261137081856138cf565b600060ff821660ff8416808210156145b2576145b26141e0565b90039392505050565b600181815b808511156145f65781600019048211156145dc576145dc6141e0565b808516156145e957918102915b93841c93908002906145c0565b509250929050565b60008261460d57506001610921565b8161461a57506000610921565b8160018114614630576002811461463a57614656565b6001915050610921565b60ff84111561464b5761464b6141e0565b50506001821b610921565b5060208310610133831016604e8410600b8410161715614679575081810a610921565b61468383836145bb565b8060001904821115614697576146976141e0565b029392505050565b6000610e6860ff8416836145fe565b6000826146cb57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156146ea576146ea6141e0565b500290565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c06080820181905260009061472a908301856138cf565b82810360a084015261473c81856138cf565b9998505050505050505050565b6000825161475b8184602087016138a3565b919091019291505056fe5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205d87e53c8441fe86e64bb3c205f08d2fb2931367f0e12803dacef022eefd3b8964736f6c634300080d0033a2646970667358221220ec49360a8f9e56f6049f45b090f1cbd07698990b9ed784e07b42f5872658d5d064736f6c634300080d003360c060405234801561001057600080fd5b5060405161138338038061138383398101604081905261002f9161005e565b6001600160a01b039182166080521660a052610098565b6001600160a01b038116811461005b57600080fd5b50565b6000806040838503121561007157600080fd5b825161007c81610046565b602084015190925061008d81610046565b809150509250929050565b60805160a0516112b26100d160003960006102dd01526000818160a501528181610220015281816104c90152610a1601526112b26000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806352d1902d1161006657806352d1902d146101255780638129fc1c146101535780639470a5b21461015b578063a6d0c53414610172578063d412d3441461018557600080fd5b806320bc4425146100a3578063431f1481146100e257806346951954146100f55780634dcc4d791461010a57806350d75d251461011d575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b6100c56100f0366004610b6d565b610198565b610108610103366004610c00565b610215565b005b6100c5610118366004610c00565b6102bb565b6100c5610352565b6040517fb146a22bc9644a3313a7e28592f37d32718a2b618d3d136aa524b0d86b87b62081526020016100d9565b610108610381565b6000546201000090046001600160a01b03166100c5565b6100c5610180366004610c33565b610441565b610108610193366004610c00565b610721565b600061020a87886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102009190610cd9565b8888888888610441565b979650505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102a75760405162461bcd60e51b815260206004820152602c60248201527f5375706572546f6b656e466163746f72793a206f6e6c7920686f73742063616e60448201526b2075706461746520636f646560a01b60648201526084015b60405180910390fd5b6102b0816107bf565b6102b86109ff565b50565b6040516313db266360e31b81526001600160a01b0382811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690639ed93318906024016020604051808303816000875af1158015610328573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034c9190610cf6565b92915050565b600061037c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b600054610100900460ff1661039c5760005460ff16156103a0565b303b155b6104035760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161029e565b600054610100900460ff16158015610425576000805461ffff19166101011790555b61042d6109ff565b80156102b8576000805461ff001916905550565b60006001600160a01b0388166104995760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e466163746f72793a207a65726f206164647265737300604482015260640161029e565b60008660028111156104ad576104ad610d13565b0361054357604051634dcc4d7960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201523090634dcc4d79906024016020604051808303816000875af1158015610518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053c9190610cf6565b905061067b565b600186600281111561055757610557610d13565b036105f757600060405161056a90610ae1565b604051809103906000f080158015610586573d6000803e3d6000fd5b50600054604051634a0687ef60e01b81526001600160a01b036201000090920482166004820152919250821690634a0687ef90602401600060405180830381600087803b1580156105d657600080fd5b505af11580156105ea573d6000803e3d6000fd5b505050508091505061067b565b600060405161060590610aee565b604051809103906000f080158015610621573d6000803e3d6000fd5b509050806001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561065f57600080fd5b505af1158015610673573d6000803e3d6000fd5b509293505050505b6040516285fc1360e71b81526001600160a01b038216906342fe0980906106b0908b908b908a908a908a908a90600401610d52565b600060405180830381600087803b1580156106ca57600080fd5b505af11580156106de573d6000803e3d6000fd5b50506040516001600160a01b03841692507fb52c6d9d122e8c07769b96d7bb14e66db58ee03fdebaaa2f92547e9c7ef0e65f9150600090a2979650505050505050565b600054604051634a0687ef60e01b81526001600160a01b0362010000909204821660048201528291821690634a0687ef90602401600060405180830381600087803b15801561076f57600080fd5b505af1158015610783573d6000803e3d6000fd5b50506040516001600160a01b03851692507f437790724a6e97b75d23117f28cdd4b1beeafc34f7a0911ef256e9334f4369a59150600090a25050565b60006107e97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b03160361083f5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c65000000604482015260640161029e565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a19190610da0565b7fb146a22bc9644a3313a7e28592f37d32718a2b618d3d136aa524b0d86b87b6201461091b5760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b606482015260840161029e565b6001600160a01b03811630036109735760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f7000000000000000604482015260640161029e565b61099b817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7fb146a22bc9644a3313a7e28592f37d32718a2b618d3d136aa524b0d86b87b620604080519182526001600160a01b03841660208301520160405180910390a150565b604051634dcc4d7960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201523090634dcc4d79906024016020604051808303816000875af1158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a899190610cf6565b6000805462010000600160b01b031916620100006001600160a01b03938416810291909117808355604051919004909216917fc13fb19d60857980e565bf5dae406b8802d3c1cec50c6156b30b12b8740297839190a2565b61024a80610dba83390190565b6102798061100483390190565b6001600160a01b03811681146102b857600080fd5b803560038110610b1f57600080fd5b919050565b60008083601f840112610b3657600080fd5b50813567ffffffffffffffff811115610b4e57600080fd5b602083019150836020828501011115610b6657600080fd5b9250929050565b60008060008060008060808789031215610b8657600080fd5b8635610b9181610afb565b9550610b9f60208801610b10565b9450604087013567ffffffffffffffff80821115610bbc57600080fd5b610bc88a838b01610b24565b90965094506060890135915080821115610be157600080fd5b50610bee89828a01610b24565b979a9699509497509295939492505050565b600060208284031215610c1257600080fd5b8135610c1d81610afb565b9392505050565b60ff811681146102b857600080fd5b600080600080600080600060a0888a031215610c4e57600080fd5b8735610c5981610afb565b96506020880135610c6981610c24565b9550610c7760408901610b10565b9450606088013567ffffffffffffffff80821115610c9457600080fd5b610ca08b838c01610b24565b909650945060808a0135915080821115610cb957600080fd5b50610cc68a828b01610b24565b989b979a50959850939692959293505050565b600060208284031215610ceb57600080fd5b8151610c1d81610c24565b600060208284031215610d0857600080fd5b8151610c1d81610afb565b634e487b7160e01b600052602160045260246000fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038716815260ff86166020820152608060408201819052600090610d809083018688610d29565b8281036060840152610d93818587610d29565b9998505050505050505050565b600060208284031215610db257600080fd5b505191905056fe608060405234801561001057600080fd5b5061022a806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f6100543660046101c4565b61006b565b610069610064610171565b6101a0565b565b6001600160a01b0381166100c65760405162461bcd60e51b815260206004820152601760248201527f5555505350726f78793a207a65726f206164647265737300000000000000000060448201526064015b60405180910390fd5b60006100f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316146101465760405162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a6564000060448201526064016100bd565b61016e817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50565b600061019b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b3660008037600080366000845af43d6000803e8080156101bf573d6000f35b3d6000fd5b6000602082840312156101d657600080fd5b81356001600160a01b03811681146101ed57600080fd5b939250505056fea264697066735822122055e86118ce2711c610170f2e930678ba3d15a2874e37c60b77b322eebc0ffc5f64736f6c634300080d0033608060405234801561001057600080fd5b50610259806100206000396000f3fe6080604052600436106100225760003560e01c80638129fc1c1461003957610031565b366100315761002f61004e565b005b61002f61004e565b34801561004557600080fd5b5061002f610060565b61005e6100596100fa565b6101cf565b565b7fb8fcd5719b3ddf8626f3664705a89b7fc476129a58c1aa5eda57c600cc1821a0546001600160a01b038116156100d45760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064015b60405180910390fd5b50337fb8fcd5719b3ddf8626f3664705a89b7fc476129a58c1aa5eda57c600cc1821a055565b7fb8fcd5719b3ddf8626f3664705a89b7fc476129a58c1aa5eda57c600cc1821a0546000906001600160a01b0381166101675760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b60448201526064016100cb565b806001600160a01b0316639470a5b26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c991906101f3565b91505090565b3660008037600080366000845af43d6000803e8080156101ee573d6000f35b3d6000fd5b60006020828403121561020557600080fd5b81516001600160a01b038116811461021c57600080fd5b939250505056fea264697066735822122078469625d42ba618be5e547b8a5c707c6fc43272d281b515b25ad24a92faef6264736f6c634300080d0033a2646970667358221220b3a60b7dec77b8e514138fe5cf81a784771302e4a7e600896eae3e15893dabc764736f6c634300080d0033",
|
|
69
|
-
"deployedBytecode": "0x60806040523480156200001157600080fd5b50600436106200003a5760003560e01c8063845531a4146200003f578063dfa98ad5146200007b575b600080fd5b620000566200005036600462000495565b620000bc565b604080516001600160a01b039384168152929091166020830152015b60405180910390f35b600154600254600354600554604080516001600160a01b03958616815293851660208501529184169183019190915291909116606082015260800162000072565b60008085858585604051620000d1906200043b565b620000e0949392919062000531565b604051809103906000f080158015620000fd573d6000803e3d6000fd5b509150816001600160a01b0316632f2ff15d836001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000174919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015620001b457600080fd5b505af1158015620001c9573d6000803e3d6000fd5b50505050816001600160a01b0316632f2ff15d836001600160a01b031663d53913936040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000241919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156200028157600080fd5b505af115801562000296573d6000803e3d6000fd5b50505050816001600160a01b0316632f2ff15d836001600160a01b031663e63ab1e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156200034e57600080fd5b505af115801562000363573d6000803e3d6000fd5b50506005546040516001600160a01b03909116925063431f14819150849060019062000396908b908b9060200162000581565b6040516020818303038152906040528888604051602001620003ba92919062000581565b6040516020818303038152906040526040518563ffffffff1660e01b8152600401620003ea9493929190620005e7565b6020604051808303816000875af11580156200040a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000430919062000644565b905094509492505050565b611d93806200067783390190565b60008083601f8401126200045c57600080fd5b50813567ffffffffffffffff8111156200047557600080fd5b6020830191508360208285010111156200048e57600080fd5b9250929050565b60008060008060408587031215620004ac57600080fd5b843567ffffffffffffffff80821115620004c557600080fd5b620004d38883890162000449565b90965094506020870135915080821115620004ed57600080fd5b50620004fc8782880162000449565b95989497509550505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6040815260006200054760408301868862000508565b82810360208401526200055c81858762000508565b979650505050505050565b6000602082840312156200057a57600080fd5b5051919050565b81838237600f60fb1b9101908152600101919050565b6000815180845260005b81811015620005bf57602081850181015186830182015201620005a1565b81811115620005d2576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03851681526000600385106200061457634e487b7160e01b600052602160045260246000fd5b8460208301526080604083015262000630608083018562000597565b82810360608401526200055c818562000597565b6000602082840312156200065757600080fd5b81516001600160a01b03811681146200066f57600080fd5b939250505056fe60806040523480156200001157600080fd5b5060405162001d9338038062001d938339810160408190526200003491620003b5565b8151829082906200004d90600590602085019062000242565b5080516200006390600690602084019062000242565b50506007805460ff19169055506200007d600033620000dd565b620000a97f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000dd565b620000d57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000dd565b50506200045b565b620000e98282620000ed565b5050565b6200010482826200013060201b6200096e1760201c565b60008281526001602090815260409091206200012b918390620009f2620001d0821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200018c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001e7836001600160a01b038416620001f0565b90505b92915050565b60008181526001830160205260408120546200023957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001ea565b506000620001ea565b82805462000250906200041f565b90600052602060002090601f016020900481019282620002745760008555620002bf565b82601f106200028f57805160ff1916838001178555620002bf565b82800160010185558215620002bf579182015b82811115620002bf578251825591602001919060010190620002a2565b50620002cd929150620002d1565b5090565b5b80821115620002cd5760008155600101620002d2565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200031057600080fd5b81516001600160401b03808211156200032d576200032d620002e8565b604051601f8301601f19908116603f01168101908282118183101715620003585762000358620002e8565b816040528381526020925086838588010111156200037557600080fd5b600091505b838210156200039957858201830151818301840152908201906200037a565b83821115620003ab5760008385830101525b9695505050505050565b60008060408385031215620003c957600080fd5b82516001600160401b0380821115620003e157600080fd5b620003ef86838701620002fe565b935060208501519150808211156200040657600080fd5b506200041585828601620002fe565b9150509250929050565b600181811c908216806200043457607f821691505b6020821081036200045557634e487b7160e01b600052602260045260246000fd5b50919050565b611928806200046b6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d5391393146103af578063d547741f146103d6578063dd62ed3e146103e9578063e63ab1e91461042257600080fd5b8063a457c2d714610376578063a9059cbb14610389578063ca15c8731461039c57600080fd5b80639010d07c116100d35780639010d07c1461032857806391d148541461035357806395d89b4114610366578063a217fddf1461036e57600080fd5b806370a08231146102e457806379cc67901461030d5780638456cb591461032057600080fd5b8063313ce567116101665780633f4ba83a116101405780633f4ba83a146102ab57806340c10f19146102b357806342966c68146102c65780635c975abb146102d957600080fd5b8063313ce5671461027657806336568abe14610285578063395093511461029857600080fd5b806318160ddd116101a257806318160ddd1461021957806323b872dd1461022b578063248a9ca31461023e5780632f2ff15d1461026157600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063095ea7b314610206575b600080fd5b6101dc6101d73660046115cf565b610449565b60405190151581526020015b60405180910390f35b6101f9610474565b6040516101e89190611625565b6101dc610214366004611674565b610506565b6004545b6040519081526020016101e8565b6101dc61023936600461169e565b61051e565b61021d61024c3660046116da565b60009081526020819052604090206001015490565b61027461026f3660046116f3565b610542565b005b604051601281526020016101e8565b6102746102933660046116f3565b61056d565b6101dc6102a6366004611674565b6105f0565b61027461062f565b6102746102c1366004611674565b6106d5565b6102746102d43660046116da565b610774565b60075460ff166101dc565b61021d6102f236600461171f565b6001600160a01b031660009081526002602052604090205490565b61027461031b366004611674565b610781565b610274610796565b61033b61033636600461173a565b61083a565b6040516001600160a01b0390911681526020016101e8565b6101dc6103613660046116f3565b610859565b6101f9610882565b61021d600081565b6101dc610384366004611674565b610891565b6101dc610397366004611674565b610923565b61021d6103aa3660046116da565b610931565b61021d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102746103e43660046116f3565b610948565b61021d6103f736600461175c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61021d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216635a05180f60e01b148061046e575061046e82610a07565b92915050565b60606005805461048390611786565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90611786565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b5050505050905090565b600033610514818585610a3c565b5060019392505050565b60003361052c858285610b60565b610537858585610bf2565b506001949350505050565b60008281526020819052604090206001015461055e8133610dcb565b6105688383610e2f565b505050565b6001600160a01b03811633146105e25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105ec8282610e51565b5050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909190610514908290869061062a9087906117d6565b610a3c565b6106597f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610859565b6106cb5760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105d9565b6106d3610e73565b565b6106ff7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610859565b61076a5760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105d9565b6105ec8282610f06565b61077e3382610ff1565b50565b61078c823383610b60565b6105ec8282610ff1565b6107c07f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610859565b6108325760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105d9565b6106d361114b565b600082815260016020526040812061085290836111c6565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461048390611786565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909190838110156109165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d9565b6105378286868403610a3c565b600033610514818585610bf2565b600081815260016020526040812061046e906111d2565b6000828152602081905260409020600101546109648133610dcb565b6105688383610e51565b6109788282610859565b6105ec576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556109ae3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610852836001600160a01b0384166111dc565b60006001600160e01b03198216637965db0b60e01b148061046e57506301ffc9a760e01b6001600160e01b031983161461046e565b6001600160a01b038316610a9e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d9565b6001600160a01b038216610aff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600360209081526040808320938616835292905220546000198114610bec5781811015610bdf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105d9565b610bec8484848403610a3c565b50505050565b6001600160a01b038316610c565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d9565b6001600160a01b038216610cb85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d9565b610cc383838361122b565b6001600160a01b03831660009081526002602052604090205481811015610d3b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105d9565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290610d729084906117d6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dbe91815260200190565b60405180910390a3610bec565b610dd58282610859565b6105ec57610ded816001600160a01b03166014611236565b610df8836020611236565b604051602001610e099291906117ee565b60408051601f198184030181529082905262461bcd60e51b82526105d991600401611625565b610e39828261096e565b600082815260016020526040902061056890826109f2565b610e5b82826113d2565b60008281526001602052604090206105689082611437565b60075460ff16610ebc5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105d9565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610f5c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105d9565b610f686000838361122b565b8060046000828254610f7a91906117d6565b90915550506001600160a01b03821660009081526002602052604081208054839290610fa79084906117d6565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166110515760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105d9565b61105d8260008361122b565b6001600160a01b038216600090815260026020526040902054818110156110d15760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105d9565b6001600160a01b0383166000908152600260205260408120838303905560048054849290611100908490611863565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60075460ff16156111915760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105d9565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ee93390565b6000610852838361144c565b600061046e825490565b60008181526001830160205260408120546112235750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561046e565b50600061046e565b610568838383611476565b6060600061124583600261187a565b6112509060026117d6565b67ffffffffffffffff81111561126857611268611899565b6040519080825280601f01601f191660200182016040528015611292576020820181803683370190505b509050600360fc1b816000815181106112ad576112ad6118af565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106112dc576112dc6118af565b60200101906001600160f81b031916908160001a905350600061130084600261187a565b61130b9060016117d6565b90505b6001811115611383576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061133f5761133f6118af565b1a60f81b828281518110611355576113556118af565b60200101906001600160f81b031916908160001a90535060049490941c9361137c816118c5565b905061130e565b5083156108525760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105d9565b6113dc8282610859565b156105ec576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610852836001600160a01b0384166114dc565b6000826000018281548110611463576114636118af565b9060005260206000200154905092915050565b60075460ff16156105685760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105d9565b600081815260018301602052604081205480156115c5576000611500600183611863565b855490915060009061151490600190611863565b9050818114611579576000866000018281548110611534576115346118af565b9060005260206000200154905080876000018481548110611557576115576118af565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061158a5761158a6118dc565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061046e565b600091505061046e565b6000602082840312156115e157600080fd5b81356001600160e01b03198116811461085257600080fd5b60005b838110156116145781810151838201526020016115fc565b83811115610bec5750506000910152565b60208152600082518060208401526116448160408501602087016115f9565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461166f57600080fd5b919050565b6000806040838503121561168757600080fd5b61169083611658565b946020939093013593505050565b6000806000606084860312156116b357600080fd5b6116bc84611658565b92506116ca60208501611658565b9150604084013590509250925092565b6000602082840312156116ec57600080fd5b5035919050565b6000806040838503121561170657600080fd5b8235915061171660208401611658565b90509250929050565b60006020828403121561173157600080fd5b61085282611658565b6000806040838503121561174d57600080fd5b50508035926020909101359150565b6000806040838503121561176f57600080fd5b61177883611658565b915061171660208401611658565b600181811c9082168061179a57607f821691505b6020821081036117ba57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156117e9576117e96117c0565b500190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516118268160178501602088016115f9565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516118578160288401602088016115f9565b01602801949350505050565b600082821015611875576118756117c0565b500390565b6000816000190483118215151615611894576118946117c0565b500290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816118d4576118d46117c0565b506000190190565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220afe1caf1e01f9ffa2b2ee0f93fd3af8e01926b940b318b54a1ea7d0d8697587864736f6c634300080d0033a2646970667358221220b0adeae4dd49b2f0da3395498efce4adb66088a697b7b65b138d85a4efa20b5264736f6c634300080d0033",
|
|
67
|
+
"metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"deployWrapperSuperToken\",\"outputs\":[{\"internalType\":\"contract ERC20PresetMinterPauser\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"contract SuperToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFramework\",\"outputs\":[{\"internalType\":\"contract Superfluid\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"contract ConstantFlowAgreementV1\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"contract InstantDistributionAgreementV1\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"contract SuperTokenFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Superfluid Framework Deployer\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Deploys everything... probably\"},\"deployWrapperSuperToken(string,string)\":{\"notice\":\"Deploy new wrapper super token\"},\"getFramework()\":{\"notice\":\"Fetches the framework contracts\"}},\"notice\":\"This is NOT for deploying public nets, but rather only for tesing envs\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/utils/SuperfluidFrameworkDeployer.sol\":\"SuperfluidFrameworkDeployer\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0x0edeb16b9821ae2b16e9d69c383b38d3ad2fbb3e0c06cf809a0786d96e602551\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88adc865fb1bd8dab4c58096e1d5887713f62c0405f8d2d17294727a8f43d8f7\",\"dweb:/ipfs/QmUJ27zsjxCatfoTFWho4k4qdhuBTorMqLuJzWqUX4Sdmg\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x4823752b07b8ea4ca971b217e39457930e7cb103c2c91e2a29729e5ca907e4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f319af26a9ade3e6cf3698bf1b84aa6213bdd7a76606ea9ba56ced163593934\",\"dweb:/ipfs/QmZ2u9zen5Htan4dSP1RZCY2XqB9HUwqkNCMzdn7aV2jWc\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0xe68ed7fb8766ed1e888291f881e36b616037f852b37d96877045319ad298ba87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d491a2ca79dbf44bc02e876e21a5847a2cbcc011188532ad8662cdc1c134a4e\",\"dweb:/ipfs/QmUQXhSV8ZvHLzfdG89ZNSh1nLrAYyjnNBLznJGwGcwVk8\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xdadd41acb749920eccf40aeaa8d291adf9751399a7343561bad13e7a8d99be0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12af4ac016f9fdf3be5d15824f4292272aa11f6b2e0192a0f7320f5ad49bbbf0\",\"dweb:/ipfs/QmRXMpdqCgA3TYuYxBodqs5p9jGbnMW6xa2gvjppvq4TWk\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol\":{\"keccak256\":\"0x978847fbff92d66d27d8767402a90ba996970b1936b372406aa17f5492bd8dc5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1414cb92779420b50d3e796b47bad6ea800ef1805bc6f9bf35a3ccb4e17db3dc\",\"dweb:/ipfs/QmaMzwYqLiivfaWSgqeaAPboBtJjVD1hSrH48p7ExJZ7DG\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol\":{\"keccak256\":\"0x2cd54808b851c4db22f459065af0b7a952262741a85a73923e7a660767cd7baa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://750c4a78e953fe92317bba7166afd0a4b7725723e5822ea1b92ffd4e72d2d36b\",\"dweb:/ipfs/QmZNyCSrdYXGQfmB6LkbX8R6y4gGZRNh1d2pJobYBpkaRF\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0xe4e0b7e3f0265ffaa565d26acd2d45f2633f19127ed625e5a05a9f201a87a667\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1762b5bc15a009b5f092ccf547b81e0827c8705884f18e0623e497658514a7ed\",\"dweb:/ipfs/QmTtmVQYuynan3j2uVjdjjRJS1mr7LPRgxSZNnfqC7oxkz\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol\":{\"keccak256\":\"0x1a5d61db2733202ba361e6d6741cd2e662380e22b80e987eacfc91973f2267dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04c0cd697050a6516b7779aa2343ad2d0e5217d8915ac2382681dfdf4e445be3\",\"dweb:/ipfs/QmPCBCZgm7pHBwwogE2F9NCN3UfTdLNhqc8UDEvw8kDzyA\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Sender.sol\":{\"keccak256\":\"0x742e51d63b108240759794360637468d9fcbf072cbd357744790d356a87bb382\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23912910ce2bb68e49ff83f43fcfa864210ee44580491e876db14922f8aecc18\",\"dweb:/ipfs/QmU6GnRQ51xvY8D57kPCV47oGeYozaz5AQZUCHxFfXdFZ4\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xebe3f8a59f0f1c96344a05edb984ef666ee4207e993cca99af3808f1de8771b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0db23062a52185cf06ad4202be0bfa4c7718c4b75f4526aeb456620ff2e737d4\",\"dweb:/ipfs/QmXtWdePeH6xpXf175YcnbwjsuLp35k6JxX8CjHzvHiyAi\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol\":{\"keccak256\":\"0x6e306f9ab28416a9e5931f0b6e264676e8ac68fad184f9a9d8bb125c6ec23bc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd7fe961c914caa1fcc8223d446c1582aec4f2a32d2f06cf09c938b72cf8ce11\",\"dweb:/ipfs/QmPfEfqtUh9SA86br28HfmMyVSBe22B3oPwF8iACCF4evY\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x5c6caab697d302ad7eb59c234a4d2dbc965c1bae87709bd2850060b7695b28c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb62abcee612c175f1b9bc70e5dfe5bd23473c99987ade6e80e291f68dc60ff1\",\"dweb:/ipfs/QmZCMajhG7FtRYNDwBchXN89mXR6HLPVzr9732qfUdNf9E\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0xa2f576be637946f767aa56601c26d717f48a0aff44f82e46f13807eea1009a21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://973868f808e88e21a1a0a01d4839314515ee337ad096286c88e41b74dcc11fc2\",\"dweb:/ipfs/QmfYuZxRfx2J2xdk4EXN7jKg4bUYEMTaYk9BAw9Bqn4o2Y\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"project:/contracts/agreements/AgreementBase.sol\":{\"keccak256\":\"0xe59fc8bbe728c574773b5d3a3e9cfb4e8f323e9a3c3267a82d36fb79921b9997\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://0e21d969b3b996ab211eff83fa5bb7041614c0ac597c7479012c0fe625f4e15f\",\"dweb:/ipfs/QmWThBae9FCDgCAcco2bZicvsPq8vz5K1XW66hz3LXSK2V\"]},\"project:/contracts/agreements/AgreementLibrary.sol\":{\"keccak256\":\"0x107ee59e59b54e9ee85997d135a9bfc97979eda1143c7b1b61b63959777bff91\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://1a235f5a0fc7a04143662a69279d513d2434eeb7d60afdcc57911dcfeef712e5\",\"dweb:/ipfs/QmbUDhcf9mizwLxyCttibMxEM9NUun4guT3Sc9vdEaSxAv\"]},\"project:/contracts/agreements/ConstantFlowAgreementV1.sol\":{\"keccak256\":\"0x70d3c2a51b84ec2830d8d18831f8a76685fafb21d86885da5b65104dadcb92a1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://e2890de952db5d7a1b1960fe4fb8fd278c1b27f9cfe8e137d20acd16ab8b4d08\",\"dweb:/ipfs/QmTR96GTDuNQfkUvfzYCq3Tn94QQxDtmUWSj3JYmrvPnrG\"]},\"project:/contracts/agreements/InstantDistributionAgreementV1.sol\":{\"keccak256\":\"0xcd1abd4778689c744353c4d6b3163c298157cdb615a57239c9f6c7937422dac9\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://19c99bcdb9d01ad5252b8aa15ffc0e18efd828c4c43c3608adbe929dbc90b060\",\"dweb:/ipfs/QmSHapsgVcfYVoFCUFyydzo3SiY9KWbPmBqBcAon6nyKKr\"]},\"project:/contracts/gov/SuperfluidGovernanceBase.sol\":{\"keccak256\":\"0xcbf4daa0e4c1da855ee47011428b4cd75c9fd5b7923749c481a882bbeb241fbb\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://bb93ada4ed13faf08607fc37eefdfa99342a3b766648158e58874acc1ea42861\",\"dweb:/ipfs/Qmdcks7t6bxnbR9f7q2Db9JMsicJeQJo7nEMppwPSCp4pg\"]},\"project:/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol\":{\"keccak256\":\"0xb96bb6cb0fe88ddf5b890b6826f7f7585cf6e94223c76d8e2fb269779afe4445\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://b864597ae952222f0f43c66943492966013021c4171d5ef4f7357c047dfd737c\",\"dweb:/ipfs/Qmcr7xicfmPDD343B34ETP3XrdU9Vi1z3zxJSgqLipfQmY\"]},\"project:/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol\":{\"keccak256\":\"0x47948789bc2265e6228f70ddd9eb194be4e35b1c5ce598f5b5a01fcb48def27b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d758b5560a735d8ab2175a2b76afe38f99bf170800917c4f0adae1f8862ad785\",\"dweb:/ipfs/QmXZToKtnJXmJq4hBqkwVAj6CYkG2DGbErt9G9T7sW4Zoe\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x199095781e4221b6015d859558da09977f79199f38d342ab4899c2cecdf8cec1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9fd3a5a8b16d8517e2af10e20390a9af5adbfa4e783e3a7dd89eb4588db98385\",\"dweb:/ipfs/QmPDtGR43DeMMVsHjUh7FYzMGsFKPpGriRkaahFpN5T5d3\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x57f4203168992c940eb6b8c7cc75f854cb36a1f9323b3f39ddc5e4fbe819c043\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://888941dfa3e5004f678f215b98a85d1bf54e412317928a78e0a1cff090773d4c\",\"dweb:/ipfs/QmVe838upcAyqpy1d3oQNHJrbRyWCKHL51zWrMKruvLxFG\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0x3cb0b7216007b942f7611d7b3d983c0df9408fdd4fd6b799c33fc9033e0abf8b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://17901a1fd3635f441671e14ece8ecc6806af20c5eb80cca3b7c6e53a51fef7b6\",\"dweb:/ipfs/QmUXXMfU6nmsyEnufyGEwyZ5M7pzpXNTr6vw32e3JjjoZp\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0xc1007d1082050b532947d27973bf996da2b0df9bdf6ed4d4fcaaa3ff2354262c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://2d22da1d2140b1ed3964ddc62d3a38e9a24a8814c18ffe496f0fbce5afef5ea0\",\"dweb:/ipfs/QmYxVnaU87HSaQktkqCZZBFj3MgphgFsZMrMLXLeZLzrvR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0x2166f766b7f61f9bb1376b0948efa0d0c0046b93dc301e51ce495203b145189b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://929630e6a15f523b142b2897783b2f7a54532ac5ae578bd17a0b7f25a6ca2bd8\",\"dweb:/ipfs/QmTu9ffH9qbQncJGEc24bmnoCGjifQ7BG47AYR8AzMLfXR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x9189eaba9e856cc4932ea29eeaf4e89a09448dde13860591691ec122856fdc75\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7d5991b906bba706373f5bfe3c2c8789a7a45360a41eee50574272b393c4ab70\",\"dweb:/ipfs/QmVCXVnYA13vMNxa7rGzNB129sUXiGE1asuHdnEMEPVZsp\"]},\"project:/contracts/interfaces/tokens/ERC20WithTokenInfo.sol\":{\"keccak256\":\"0x66708dae3fcd06e6fc0a46f2959fc2d1e6b9361f28598337339d26af8eb8c0f9\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://77b80718cec21b81ef190c19fb9fbe73913a95c71f7e6715f671bbe8a224dafc\",\"dweb:/ipfs/QmUdsc6DF2Bgih5VZm7sfaECjhGmwE7tAx8pMkzGQgVKQw\"]},\"project:/contracts/interfaces/tokens/TokenInfo.sol\":{\"keccak256\":\"0x70e573644a0ff271c0ccef526809e9d9ab4950ec58755ca84e833cde3b8f3df0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://aea3709687cc37ba625f4cc882fbdb149a7bf5be5afe2b030203c8719641a77b\",\"dweb:/ipfs/QmVpvfR6ZheE5wNUK9CobaVBgVvEnEPkvjWF9cfwyZr7eQ\"]},\"project:/contracts/interfaces/utils/IRelayRecipient.sol\":{\"keccak256\":\"0x3f531ce91c165b7581483798cc920d38828d509df6cb9d427a10c922b4627790\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://c4b872da16464ec4a06422b2bf0e95594f0458cca02993cefdbc76b5f7b7a974\",\"dweb:/ipfs/Qma9nVTfu6kbLQ6y58ZnDRXX8YzKiyASWeCsdY8ue6rpdT\"]},\"project:/contracts/libs/BaseRelayRecipient.sol\":{\"keccak256\":\"0x505cc7758bcb57e40bccac0108f990a00c1e307f8fd33d490feb7473b3829f63\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://5adff7a74c567ef936cc5b0d2425688db81488e58d3f6720d9d108b8aa8230a9\",\"dweb:/ipfs/QmTtese5RWc7xCxp1hMTkeZkHbFcYhxK6xxPMm5QSs9GV5\"]},\"project:/contracts/libs/CallUtils.sol\":{\"keccak256\":\"0x16b6a382d6e75244f35ced44126b23472fcc94a412391c9db693e83bb810f76a\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d43974dcedc193e8ef84fb44f41b27b4e74e3af476b4c2f9d0e6b271fa83e354\",\"dweb:/ipfs/QmUZG2Rqh8yzZ79rT4rmCKSkuKFk5QkRpSYGJXgVHwDFr9\"]},\"project:/contracts/libs/ERC777Helper.sol\":{\"keccak256\":\"0x5db4d5e987d0659d5fd915e9823359141ad3d9d5796e50ae98756bccc86ea9d6\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://2a4e7413e6539cffc1ea0807f05ac49fea8ebc258a9d76b72bade12a0c143075\",\"dweb:/ipfs/QmTsrsMe3bcwB4JnfPAiG1bNvEdTAVFTSyVBKQALVuLMWy\"]},\"project:/contracts/libs/FixedSizeData.sol\":{\"keccak256\":\"0xbb3de3fbf919ef59b6890063847904d2824d7a0da63ff486d97a19eb8f4241f5\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://23a9d841867cbe1da4487d78929cc994352c22c9113840f98c15f0870b612f6f\",\"dweb:/ipfs/QmS7tZMw2itiie8BPosFiwmZy8TUipHUbzpEAf66SficGL\"]},\"project:/contracts/libs/Int96SafeMath.sol\":{\"keccak256\":\"0xbd674ccbea4bc7c5cf1af19cf31fcd5261ac913f5909992c18b7832aef02721b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://c2e8c9ded61ea509eccca9a99dd3f4aaa3ef4132720056e4ce4086bce21f3b68\",\"dweb:/ipfs/QmfD9idja1rMjKF5XMCKeDfzG5KAMejuSmFATLVTUQb5nj\"]},\"project:/contracts/libs/SlotsBitmapLibrary.sol\":{\"keccak256\":\"0x1e49c98367ebcf54203dc9ba6e12cd8493781f66a41cac35f563a08db5231567\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://e685a5772695434b8b2fca2d2ae195e466d0333c68070f2667d6f3d8f50134a2\",\"dweb:/ipfs/Qmd8GZtoZDGh7onzpsTw3FdLkkVuLRopNa5ZfG9R7yexkF\"]},\"project:/contracts/libs/UInt128SafeMath.sol\":{\"keccak256\":\"0xa606106997a2d49781bb75153ca063cc156a4bd2995b93689804fb1f633598bb\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://bf5329c5e16ce8f5cbbb5b82f74afb6641a49ed78a4f6f9b1f80bd16c0774537\",\"dweb:/ipfs/QmWqeSsvzRsxoAszVt9T1G19vt1fdT5HRhJcE9LVYEcDt1\"]},\"project:/contracts/superfluid/FullUpgradableSuperTokenProxy.sol\":{\"keccak256\":\"0x8351cd8c965160f68ab2b5ffde063d1457d3f51c179a7c1081547a60d856bc3c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://152dc489a518ac6f9b90b42c52faebc0cbb7479516c606b8ca3b7f7c63945717\",\"dweb:/ipfs/QmW5Q5K3zqsFmcRXA3FMsoom76tYuHUF9pZLvZYZGynnxe\"]},\"project:/contracts/superfluid/SuperToken.sol\":{\"keccak256\":\"0xcaa50b4f7c92fd51a483f31d9869d7ad4a8b11d0fb7564eca1859434a18ba429\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://5311245d23b5e6359a95a9b62ca047f6bdcb82b68c309aaf44d7852c6af7ff96\",\"dweb:/ipfs/QmNvbjHfENCwJVprouTgDS1M7J2PTyuuuKshKtAnjWEjAJ\"]},\"project:/contracts/superfluid/SuperTokenFactory.sol\":{\"keccak256\":\"0x3cb80ed9391959d9d79cc06f95071b00dee5b07e28fc0a75e7d6338b40ebddbb\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://8d589a8000d2b57865d0ca3f9d2342971003eff476e3aeb1fcd36c903cde429b\",\"dweb:/ipfs/QmSdbmi2TCLKBqNvHBEfsdujSFa6ievkqHkKjLX2B5QbQ5\"]},\"project:/contracts/superfluid/Superfluid.sol\":{\"keccak256\":\"0xb54df3e8ac8639f599db7f97959464a7b14cc5aee0702a798501d5fa314d456b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://fa1b38247a43cc6449829d8467f751989fb689ee5c446c34e10c395bed77524c\",\"dweb:/ipfs/QmZovU1jFkHVydZM6JXzQzrokehY35Ba735qaoVomq27Wu\"]},\"project:/contracts/superfluid/SuperfluidToken.sol\":{\"keccak256\":\"0x10158d04d399c5cdcfba45161d8241924b21cda4301f6f5f9f019c21f2647da0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://983f259f440910fdb8fa8a3d8c990e99982e7865b4d97f36ba9f24287d485fdf\",\"dweb:/ipfs/QmdYnYuPwmYWzBoNgP4pN4kKCqBm2oDRJUfpSFhFtaRtii\"]},\"project:/contracts/upgradability/UUPSProxiable.sol\":{\"keccak256\":\"0x5f50cec21a585dab7b59545aeb51735f36e3222e4b0768370be8d46373d0ef05\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://acdd57d81b5b2d346da335636baf1e37da3d31cf2eef58af493e43bc65a27414\",\"dweb:/ipfs/QmTepRBNAfRBXVDBM37ME1jpw1YgcseVehC17sWpEYeFDc\"]},\"project:/contracts/upgradability/UUPSProxy.sol\":{\"keccak256\":\"0x1164a0047c0600d162060fc9ea72a5e50779a9ccd28143fa4a984f5a635493cc\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://1205e5b16fd67b2bf99bb917175d0bd1caaa1509d3f4a4f3c8184e8c40c564ef\",\"dweb:/ipfs/Qme96cpfG4LNjdA44H2CZP3zYT73XEtRZMXpBGMTDjtFVf\"]},\"project:/contracts/upgradability/UUPSUtils.sol\":{\"keccak256\":\"0xffec084e77ce3c0b595f0612687242f3d8b7a84cab15e5650c17428ee48d0b5b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://be0183816467872b053562d9a737042ac3a91ea67e3c74e03de5db7226f3e73b\",\"dweb:/ipfs/QmUyi4YXh1T7MExbrLwZ6rAdXTPChF8q27YpZxxniR6CHM\"]},\"project:/contracts/utils/SuperfluidFrameworkDeployer.sol\":{\"keccak256\":\"0x944451a2894698f342c75e8bac1fa77f134ef6b77bd49c9d6cb509c5e8d64505\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://f87165f1dbec842028e218e1166527e83dc6740b21a683766d0215d48605905d\",\"dweb:/ipfs/QmbtzVUqPZe6tmKep7MvN7L3eXv2zVjYL6ddZYd45Gg4Kr\"]},\"project:/contracts/utils/TestGovernance.sol\":{\"keccak256\":\"0x88232403c83d71e09b94ff78bf4464d5707c55052247c94b5d0a7808b4ab366b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://b4b364b1555bad346d96ea124597823514c75a0f49b30136d65b3b9be4d09aac\",\"dweb:/ipfs/QmQKztdSztuVcW6EnQzTUvjFS2Dudi89g1sZ2fxBEZSuoy\"]}},\"version\":1}",
|
|
68
|
+
"bytecode": "0x60806040523480156200001157600080fd5b5060405162000020906200048b565b604051809103906000f0801580156200003d573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b039290921691909117815560405160019190620000709062000499565b911515825215156020820152604001604051809103906000f0801580156200009c573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b0392831690811790915560005460405163189acdbd60e31b8152921660048301529063c4d66de890602401600060405180830381600087803b158015620000f857600080fd5b505af11580156200010d573d6000803e3d6000fd5b50600092508291506200011d9050565b60405190808252806020026020018201604052801562000147578160200160208202803683370190505b50600054600154604051630b520f0360e31b81529293506001600160a01b0391821692635a907818926200018d9216906045906138409061070890889060040162000525565b600060405180830381600087803b158015620001a857600080fd5b505af1158015620001bd573d6000803e3d6000fd5b50506001546040516001600160a01b039091169250620001de9150620004a7565b6001600160a01b039091168152602001604051809103906000f0801580156200020b573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392831690811790915560005460015460405163cadf8f8560e01b8152908416600482015260248101929092529091169063cadf8f8590604401600060405180830381600087803b1580156200027657600080fd5b505af11580156200028b573d6000803e3d6000fd5b50506001546040516001600160a01b039091169250620002ac9150620004b5565b6001600160a01b039091168152602001604051809103906000f080158015620002d9573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b0392831690811790915560005460015460405163cadf8f8560e01b8152908416600482015260248101929092529091169063cadf8f8590604401600060405180830381600087803b1580156200034457600080fd5b505af115801562000359573d6000803e3d6000fd5b505050506040516200036b90620004c3565b604051809103906000f08015801562000388573d6000803e3d6000fd5b50600480546001600160a01b0319166001600160a01b03928316908117909155600154604051921691620003bc90620004d1565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015620003f0573d6000803e3d6000fd5b50600580546001600160a01b0319166001600160a01b039283169081179091556000805460015460408051848152602081019182905263109e50a960e21b9091529185169463427942a4946200045094929091169290602482016200056c565b600060405180830381600087803b1580156200046b57600080fd5b505af115801562000480573d6000803e3d6000fd5b5050505050620005ac565b61199680620029fb83390190565b61561c806200439183390190565b61550f80620099ad83390190565b6155d0806200eebc83390190565b614a23806201448c83390190565b6113838062018eaf83390190565b600081518084526020808501945080840160005b838110156200051a5781516001600160a01b031687529582019590820190600101620004f3565b509495945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906200056190830184620004df565b979650505050505050565b600060018060a01b038087168352808616602084015260806040840152620005986080840186620004df565b915080841660608401525095945050505050565b61243f80620005bc6000396000f3fe60806040523480156200001157600080fd5b50600436106200003a5760003560e01c8063845531a4146200003f578063dfa98ad5146200007b575b600080fd5b620000566200005036600462000495565b620000bc565b604080516001600160a01b039384168152929091166020830152015b60405180910390f35b600154600254600354600554604080516001600160a01b03958616815293851660208501529184169183019190915291909116606082015260800162000072565b60008085858585604051620000d1906200043b565b620000e0949392919062000531565b604051809103906000f080158015620000fd573d6000803e3d6000fd5b509150816001600160a01b0316632f2ff15d836001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000174919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015620001b457600080fd5b505af1158015620001c9573d6000803e3d6000fd5b50505050816001600160a01b0316632f2ff15d836001600160a01b031663d53913936040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000241919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156200028157600080fd5b505af115801562000296573d6000803e3d6000fd5b50505050816001600160a01b0316632f2ff15d836001600160a01b031663e63ab1e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156200034e57600080fd5b505af115801562000363573d6000803e3d6000fd5b50506005546040516001600160a01b03909116925063431f14819150849060019062000396908b908b9060200162000581565b6040516020818303038152906040528888604051602001620003ba92919062000581565b6040516020818303038152906040526040518563ffffffff1660e01b8152600401620003ea9493929190620005e7565b6020604051808303816000875af11580156200040a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000430919062000644565b905094509492505050565b611d93806200067783390190565b60008083601f8401126200045c57600080fd5b50813567ffffffffffffffff8111156200047557600080fd5b6020830191508360208285010111156200048e57600080fd5b9250929050565b60008060008060408587031215620004ac57600080fd5b843567ffffffffffffffff80821115620004c557600080fd5b620004d38883890162000449565b90965094506020870135915080821115620004ed57600080fd5b50620004fc8782880162000449565b95989497509550505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6040815260006200054760408301868862000508565b82810360208401526200055c81858762000508565b979650505050505050565b6000602082840312156200057a57600080fd5b5051919050565b81838237600f60fb1b9101908152600101919050565b6000815180845260005b81811015620005bf57602081850181015186830182015201620005a1565b81811115620005d2576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03851681526000600385106200061457634e487b7160e01b600052602160045260246000fd5b8460208301526080604083015262000630608083018562000597565b82810360608401526200055c818562000597565b6000602082840312156200065757600080fd5b81516001600160a01b03811681146200066f57600080fd5b939250505056fe60806040523480156200001157600080fd5b5060405162001d9338038062001d938339810160408190526200003491620003b5565b8151829082906200004d90600590602085019062000242565b5080516200006390600690602084019062000242565b50506007805460ff19169055506200007d600033620000dd565b620000a97f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000dd565b620000d57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000dd565b50506200045b565b620000e98282620000ed565b5050565b6200010482826200013060201b6200096e1760201c565b60008281526001602090815260409091206200012b918390620009f2620001d0821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200018c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001e7836001600160a01b038416620001f0565b90505b92915050565b60008181526001830160205260408120546200023957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001ea565b506000620001ea565b82805462000250906200041f565b90600052602060002090601f016020900481019282620002745760008555620002bf565b82601f106200028f57805160ff1916838001178555620002bf565b82800160010185558215620002bf579182015b82811115620002bf578251825591602001919060010190620002a2565b50620002cd929150620002d1565b5090565b5b80821115620002cd5760008155600101620002d2565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200031057600080fd5b81516001600160401b03808211156200032d576200032d620002e8565b604051601f8301601f19908116603f01168101908282118183101715620003585762000358620002e8565b816040528381526020925086838588010111156200037557600080fd5b600091505b838210156200039957858201830151818301840152908201906200037a565b83821115620003ab5760008385830101525b9695505050505050565b60008060408385031215620003c957600080fd5b82516001600160401b0380821115620003e157600080fd5b620003ef86838701620002fe565b935060208501519150808211156200040657600080fd5b506200041585828601620002fe565b9150509250929050565b600181811c908216806200043457607f821691505b6020821081036200045557634e487b7160e01b600052602260045260246000fd5b50919050565b611928806200046b6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d5391393146103af578063d547741f146103d6578063dd62ed3e146103e9578063e63ab1e91461042257600080fd5b8063a457c2d714610376578063a9059cbb14610389578063ca15c8731461039c57600080fd5b80639010d07c116100d35780639010d07c1461032857806391d148541461035357806395d89b4114610366578063a217fddf1461036e57600080fd5b806370a08231146102e457806379cc67901461030d5780638456cb591461032057600080fd5b8063313ce567116101665780633f4ba83a116101405780633f4ba83a146102ab57806340c10f19146102b357806342966c68146102c65780635c975abb146102d957600080fd5b8063313ce5671461027657806336568abe14610285578063395093511461029857600080fd5b806318160ddd116101a257806318160ddd1461021957806323b872dd1461022b578063248a9ca31461023e5780632f2ff15d1461026157600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063095ea7b314610206575b600080fd5b6101dc6101d73660046115cf565b610449565b60405190151581526020015b60405180910390f35b6101f9610474565b6040516101e89190611625565b6101dc610214366004611674565b610506565b6004545b6040519081526020016101e8565b6101dc61023936600461169e565b61051e565b61021d61024c3660046116da565b60009081526020819052604090206001015490565b61027461026f3660046116f3565b610542565b005b604051601281526020016101e8565b6102746102933660046116f3565b61056d565b6101dc6102a6366004611674565b6105f0565b61027461062f565b6102746102c1366004611674565b6106d5565b6102746102d43660046116da565b610774565b60075460ff166101dc565b61021d6102f236600461171f565b6001600160a01b031660009081526002602052604090205490565b61027461031b366004611674565b610781565b610274610796565b61033b61033636600461173a565b61083a565b6040516001600160a01b0390911681526020016101e8565b6101dc6103613660046116f3565b610859565b6101f9610882565b61021d600081565b6101dc610384366004611674565b610891565b6101dc610397366004611674565b610923565b61021d6103aa3660046116da565b610931565b61021d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102746103e43660046116f3565b610948565b61021d6103f736600461175c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61021d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216635a05180f60e01b148061046e575061046e82610a07565b92915050565b60606005805461048390611786565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90611786565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b5050505050905090565b600033610514818585610a3c565b5060019392505050565b60003361052c858285610b60565b610537858585610bf2565b506001949350505050565b60008281526020819052604090206001015461055e8133610dcb565b6105688383610e2f565b505050565b6001600160a01b03811633146105e25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105ec8282610e51565b5050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909190610514908290869061062a9087906117d6565b610a3c565b6106597f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610859565b6106cb5760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105d9565b6106d3610e73565b565b6106ff7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610859565b61076a5760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105d9565b6105ec8282610f06565b61077e3382610ff1565b50565b61078c823383610b60565b6105ec8282610ff1565b6107c07f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610859565b6108325760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105d9565b6106d361114b565b600082815260016020526040812061085290836111c6565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461048390611786565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909190838110156109165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d9565b6105378286868403610a3c565b600033610514818585610bf2565b600081815260016020526040812061046e906111d2565b6000828152602081905260409020600101546109648133610dcb565b6105688383610e51565b6109788282610859565b6105ec576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556109ae3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610852836001600160a01b0384166111dc565b60006001600160e01b03198216637965db0b60e01b148061046e57506301ffc9a760e01b6001600160e01b031983161461046e565b6001600160a01b038316610a9e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d9565b6001600160a01b038216610aff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600360209081526040808320938616835292905220546000198114610bec5781811015610bdf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105d9565b610bec8484848403610a3c565b50505050565b6001600160a01b038316610c565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d9565b6001600160a01b038216610cb85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d9565b610cc383838361122b565b6001600160a01b03831660009081526002602052604090205481811015610d3b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105d9565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290610d729084906117d6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dbe91815260200190565b60405180910390a3610bec565b610dd58282610859565b6105ec57610ded816001600160a01b03166014611236565b610df8836020611236565b604051602001610e099291906117ee565b60408051601f198184030181529082905262461bcd60e51b82526105d991600401611625565b610e39828261096e565b600082815260016020526040902061056890826109f2565b610e5b82826113d2565b60008281526001602052604090206105689082611437565b60075460ff16610ebc5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105d9565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610f5c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105d9565b610f686000838361122b565b8060046000828254610f7a91906117d6565b90915550506001600160a01b03821660009081526002602052604081208054839290610fa79084906117d6565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166110515760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105d9565b61105d8260008361122b565b6001600160a01b038216600090815260026020526040902054818110156110d15760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105d9565b6001600160a01b0383166000908152600260205260408120838303905560048054849290611100908490611863565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60075460ff16156111915760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105d9565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ee93390565b6000610852838361144c565b600061046e825490565b60008181526001830160205260408120546112235750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561046e565b50600061046e565b610568838383611476565b6060600061124583600261187a565b6112509060026117d6565b67ffffffffffffffff81111561126857611268611899565b6040519080825280601f01601f191660200182016040528015611292576020820181803683370190505b509050600360fc1b816000815181106112ad576112ad6118af565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106112dc576112dc6118af565b60200101906001600160f81b031916908160001a905350600061130084600261187a565b61130b9060016117d6565b90505b6001811115611383576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061133f5761133f6118af565b1a60f81b828281518110611355576113556118af565b60200101906001600160f81b031916908160001a90535060049490941c9361137c816118c5565b905061130e565b5083156108525760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105d9565b6113dc8282610859565b156105ec576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610852836001600160a01b0384166114dc565b6000826000018281548110611463576114636118af565b9060005260206000200154905092915050565b60075460ff16156105685760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105d9565b600081815260018301602052604081205480156115c5576000611500600183611863565b855490915060009061151490600190611863565b9050818114611579576000866000018281548110611534576115346118af565b9060005260206000200154905080876000018481548110611557576115576118af565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061158a5761158a6118dc565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061046e565b600091505061046e565b6000602082840312156115e157600080fd5b81356001600160e01b03198116811461085257600080fd5b60005b838110156116145781810151838201526020016115fc565b83811115610bec5750506000910152565b60208152600082518060208401526116448160408501602087016115f9565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461166f57600080fd5b919050565b6000806040838503121561168757600080fd5b61169083611658565b946020939093013593505050565b6000806000606084860312156116b357600080fd5b6116bc84611658565b92506116ca60208501611658565b9150604084013590509250925092565b6000602082840312156116ec57600080fd5b5035919050565b6000806040838503121561170657600080fd5b8235915061171660208401611658565b90509250929050565b60006020828403121561173157600080fd5b61085282611658565b6000806040838503121561174d57600080fd5b50508035926020909101359150565b6000806040838503121561176f57600080fd5b61177883611658565b915061171660208401611658565b600181811c9082168061179a57607f821691505b6020821081036117ba57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156117e9576117e96117c0565b500190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516118268160178501602088016115f9565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516118578160288401602088016115f9565b01602801949350505050565b600082821015611875576118756117c0565b500390565b6000816000190483118215151615611894576118946117c0565b500290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816118d4576118d46117c0565b506000190190565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220afe1caf1e01f9ffa2b2ee0f93fd3af8e01926b940b318b54a1ea7d0d8697587864736f6c634300080d0033a2646970667358221220f58293d2f02aba4f81ce215a8800bc450db61e207e30ba427459a01bb0c398f964736f6c634300080d0033608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6119188061007e6000396000f3fe608060405234801561001057600080fd5b50600436106101d95760003560e01c80637f0558e4116101045780638da5cb5b116100a2578063e447cc1d11610071578063e447cc1d1461040c578063f047a2d91461041f578063f2fde38b14610432578063f79a8e631461044557600080fd5b80638da5cb5b146103c25780638ecbd87b146103d3578063ab846f1a146103e6578063cadf8f85146103f957600080fd5b80638a7ff2f7116100de5780638a7ff2f7146103665780638abe04e9146103795780638b93b3f51461039c5780638ce93379146103af57600080fd5b80637f0558e41461032457806380f70cba146103375780638369a0f11461035857600080fd5b8063427942a41161017c578063640b6cc91161014b578063640b6cc9146102e3578063715018a6146102f657806378707cb8146102fe5780637dce4f811461031157600080fd5b8063427942a41461028257806344864b251461029557806345228235146102a85780635a907818146102d057600080fd5b806321964473116101b8578063219644731461023657806325c955c314610249578063325529081461025c57806342148deb1461026f57600080fd5b806286d555146101de57806301a06b97146101f357806319df62ab14610206575b600080fd5b6101f16101ec36600461144d565b610458565b005b6101f1610201366004611493565b610573565b610219610214366004611493565b6105f2565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f1610244366004611518565b610626565b6101f1610257366004611493565b6106ef565b6101f161026a3660046115ab565b610703565b6101f161027d3660046115f6565b61077f565b6101f161029036600461164b565b610834565b6101f16102a3366004611493565b6109c7565b6102bb6102b6366004611493565b610a32565b6040805192835260208301919091520161022d565b6101f16102de3660046116de565b610a7a565b6101f16102f13660046117de565b610b31565b6101f1610b3c565b6101f161030c36600461181f565b610ba2565b6101f161031f3660046115ab565b610bae565b6101f16103323660046117de565b610c1e565b61034a6103453660046117de565b610c94565b60405190815260200161022d565b6102196103453660046117de565b61034a610374366004611493565b610d05565b61038c610387366004611493565b610d32565b604051901515815260200161022d565b6101f16103aa366004611493565b610d4d565b6101f16103bd3660046115ab565b610dbd565b6000546001600160a01b0316610219565b6101f16103e1366004611493565b610e1c565b6101f16103f43660046115ab565b610e90565b6101f1610407366004611493565b610eec565b6101f161041a366004611493565b610f24565b61038c61042d3660046115ab565b610f98565b6101f1610440366004611872565b610fb3565b6101f161045336600461144d565b61107e565b808211801561046a575063ffffffff82105b8015610479575063ffffffff81105b6104e65760405162461bcd60e51b815260206004820152603360248201527f5346476f763a20496e76616c6964206c69717569646174696f6e506572696f64604482015272081bdc881c185d1c9a58da585b94195c9a5bd9606a1b60648201526084015b60405180910390fd5b6040805160018152602081018490529081018290526001600160a01b0380851691908616907f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869060600160405180910390a3602082901b811761056b85857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f7884611086565b505b50505050565b604080516000808252602082018190528183015290516001600160a01b0383811692908516917f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869181900360600190a36105ee82827fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78611139565b5050565b600061061f83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09610c94565b9392505050565b8281146106835760405162461bcd60e51b815260206004820152602560248201527f5346476f763a2061727261797320617265206e6f74207468652073616d65206c6044820152640cadccee8d60db1b60648201526084016104dd565b60005b818110156106e7576106d7868686848181106106a4576106a461188f565b90506020020160208101906106b99190611872565b8585858181106106cb576106cb61188f565b90506020020135610c1e565b6106e0816118a5565b9050610686565b505050505050565b6105ee8260006106fe846111fa565b611139565b60408051600181526001600160a01b03838116602083015280851692908616917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a361077a83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d098461128d565b505050565b8261078981611342565b60005b8281101561056b57846001600160a01b031663787afde78585848181106107b5576107b561188f565b90506020020160208101906107ca9190611872565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561080b57600080fd5b505af115801561081f573d6000803e3d6000fd5b505050508061082d906118a5565b905061078c565b8461083e81611342565b6001600160a01b038516156108a9576040516311a5465560e21b81526001600160a01b038681166004830152871690634695195490602401600060405180830381600087803b15801561089057600080fd5b505af11580156108a4573d6000803e3d6000fd5b505050505b60005b8381101561095457866001600160a01b03166306cecba88686848181106108d5576108d561188f565b90506020020160208101906108ea9190611872565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050508061094d906118a5565b90506108ac565b506001600160a01b038216156106e7576040516354fbc49360e01b81526001600160a01b0383811660048301528716906354fbc49390602401600060405180830381600087803b1580156109a757600080fd5b505af11580156109bb573d6000803e3d6000fd5b50505050505050505050565b816109d181611342565b604051631ca0c40360e21b81526001600160a01b038381166004830152841690637283100c906024015b600060405180830381600087803b158015610a1557600080fd5b505af1158015610a29573d6000803e3d6000fd5b50505050505050565b6000806000610a6285857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78610c94565b63ffffffff602082901c811697911695509350505050565b6001600160a01b038516610a9057610a906118cc565b6002546001600160a01b031615610aa957610aa96118cc565b600280546001600160a01b0319166001600160a01b038716908117909155610ad390600086610703565b610ae08560008585610458565b60005b81518110156106e7576002548251610b21916001600160a01b031690600090859085908110610b1457610b1461188f565b6020026020010151610e90565b610b2a816118a5565b9050610ae3565b61077a838383611139565b6000546001600160a01b03163314610b965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dd565b610ba06000611379565b565b61056d8484848461128d565b610bc38383610bbc846113c9565b6000611086565b60408051600181526001600160a01b038381166020830152600092820192909252818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d27906060015b60405180910390a3505050565b6040805160018152602081018390526001600160a01b0380851692908616917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a361077a83837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc484611086565b6001600160a01b03808416600090815260016020908152604080832093861683529281528282208483529052908120805460ff16610cf957506001600160a01b0384166000908152600160209081526040808320838052825280832085845290915290205b60010154949350505050565b600061061f83837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4610c94565b6000610d43836000610345856111fa565b6001149392505050565b803b80610da65760405162461bcd60e51b815260206004820152602160248201527f5346476f763a20666163746f7279206d757374206265206120636f6e747261636044820152601d60fa1b60648201526084016104dd565b506105ee826000610db6846111fa565b6001611086565b6040805160008082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d279060600160405180910390a361077a83836106fe846113c9565b60408051600080825260208201526001600160a01b0380841692908516917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a36105ee82827feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4611139565b610e9e8383610db6846113c9565b6040805160018082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d2790606001610c11565b81610ef681611342565b6040516315a024e160e01b81526001600160a01b0383811660048301528416906315a024e1906024016109fb565b60408051600080825260208201526001600160a01b0380841692908516917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a36105ee82827f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09611139565b6000610fa88484610345856113c9565b600114949350505050565b6000546001600160a01b0316331461100d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dd565b6001600160a01b0381166110725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104dd565b61107b81611379565b50565b61056d848484845b8361109081611342565b60408051848152600160208201529081018390526001600160a01b0380861691908716907f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3909060600160405180910390a350604080518082018252600180825260208083019485526001600160a01b039788166000908152828252848120979098168852958652828720948752939094529093209151825460ff19169015151782559151910155565b8261114381611342565b826001600160a01b0316846001600160a01b03167f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3908460008060405161119c939291909283529015156020830152604082015260600190565b60405180910390a350604080518082018252600080825260208083018281526001600160a01b03978816835260018083528584209790981683529581528382209482529390935291209051815460ff19169015151781559051910155565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b8361129781611342565b60408051848152600160208201526001600160a01b03848116828401529151868316928816917f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e390919081900360600190a35060408051808201825260018082526001600160a01b03938416602080840191825297851660009081528289528481209790951685529587528284209484529390955290209251835460ff19169015151783559051910155565b6002546001600160a01b0382811691161461135f5761135f6118cc565b6000546001600160a01b0316331461107b5761107b6118cc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c001611270565b6001600160a01b038116811461107b57600080fd5b6000806000806080858703121561146357600080fd5b843561146e81611438565b9350602085013561147e81611438565b93969395505050506040820135916060013590565b600080604083850312156114a657600080fd5b82356114b181611438565b915060208301356114c181611438565b809150509250929050565b60008083601f8401126114de57600080fd5b50813567ffffffffffffffff8111156114f657600080fd5b6020830191508360208260051b850101111561151157600080fd5b9250929050565b60008060008060006060868803121561153057600080fd5b853561153b81611438565b9450602086013567ffffffffffffffff8082111561155857600080fd5b61156489838a016114cc565b9096509450604088013591508082111561157d57600080fd5b5061158a888289016114cc565b969995985093965092949392505050565b80356115a681611438565b919050565b6000806000606084860312156115c057600080fd5b83356115cb81611438565b925060208401356115db81611438565b915060408401356115eb81611438565b809150509250925092565b60008060006040848603121561160b57600080fd5b833561161681611438565b9250602084013567ffffffffffffffff81111561163257600080fd5b61163e868287016114cc565b9497909650939450505050565b60008060008060006080868803121561166357600080fd5b853561166e81611438565b9450602086013561167e81611438565b9350604086013567ffffffffffffffff81111561169a57600080fd5b6116a6888289016114cc565b90945092505060608601356116ba81611438565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a086880312156116f657600080fd5b853561170181611438565b945060208681013561171281611438565b94506040870135935060608701359250608087013567ffffffffffffffff8082111561173d57600080fd5b818901915089601f83011261175157600080fd5b813581811115611763576117636116c8565b8060051b604051601f19603f83011681018181108582111715611788576117886116c8565b60405291825284820192508381018501918c8311156117a657600080fd5b938501935b828510156117cb576117bc8561159b565b845293850193928501926117ab565b8096505050505050509295509295909350565b6000806000606084860312156117f357600080fd5b83356117fe81611438565b9250602084013561180e81611438565b929592945050506040919091013590565b6000806000806080858703121561183557600080fd5b843561184081611438565b9350602085013561185081611438565b925060408501359150606085013561186781611438565b939692955090935050565b60006020828403121561188457600080fd5b813561061f81611438565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c557634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052600160045260246000fdfea26469706673582212202a622a1c199f28f62fb3d08c1ca6fa22745414bc0be5a3e12518f9dfbd45351364736f6c634300080d0033610100604052600160c052622dc6c060e0523480156200001e57600080fd5b506040516200561c3803806200561c833981016040819052620000419162000068565b901515608052151560a052620000a0565b805180151581146200006357600080fd5b919050565b600080604083850312156200007c57600080fd5b620000878362000052565b9150620000976020840162000052565b90509250929050565b60805160a05160c05160e0516154f5620001276000396000818161037101528181612c910152612d1f0152600081816107020152612ace01526000818161058501528181611f39015261294b0152600081816106b9015281816107aa01528181610bd0015281816112a60152818161141d0152818161157c015261284e01526154f56000f3fe608060405234801561001057600080fd5b50600436106102a05760003560e01c806374041e0211610167578063bbe4fd50116100ce578063cd312ec411610087578063cd312ec4146106b4578063e8dccb7d146106db578063f213bb02146106fd578063f2e55caf14610724578063f37330521461072c578063f9f522f41461073f57600080fd5b8063bbe4fd5014610642578063bced3ddc14610648578063bd1c448b1461065b578063bf4287341461066e578063c4d66de814610681578063c56a069d1461069457600080fd5b8063a5dbbbcd11610120578063a5dbbbcd146105a7578063ad3915c8146105ba578063b6d200de146105cd578063b724211e146105e0578063ba48b5f8146105f3578063bb84cfa11461060657600080fd5b806374041e0214610521578063768fabb014610534578063787afde7146105475780638ca484841461055a578063989b0c3e1461056d5780639d297e301461058057600080fd5b8063469519541161020b578063572b6c05116101c4578063572b6c05146104b1578063670e77e3146104c45780636ad3ca7d146104d75780636b4f3335146104ea5780637283100c146104fd578063731aed6e1461051057600080fd5b80634695195414610422578063486ff0cd1461043557806350d75d251461045357806352d1902d1461045b57806354fbc4931461048b57806357121e0c1461049e57600080fd5b8063289b3c0d1161025d578063289b3c0d1461034157806333d608f11461036c57806339255d5b146103ab5780633ca3ad4e146103be5780633f6c923a146103e15780634329d2931461040157600080fd5b806306cecba8146102a55780630792f20a146102ba57806313349046146102e357806315a024e1146103085780631e6d0a841461031b5780631e855cf31461032e575b600080fd5b6102b86102b336600461425c565b61076f565b005b6102cd6102c83660046142c1565b61094c565b6040516102da9190614369565b60405180910390f35b6102f66102f136600461425c565b610a44565b60405160ff90911681526020016102da565b6102b861031636600461425c565b610a67565b6102cd61032936600461438a565b610d33565b6102cd61033c36600461450b565b610fa1565b6000546201000090046001600160a01b03165b6040516001600160a01b0390911681526020016102da565b6103937f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b0390911681526020016102da565b6102cd6103b936600461455a565b610fb5565b6103d16103cc36600461425c565b610fcb565b60405190151581526020016102da565b6103f46103ef3660046145cf565b610fe8565b6040516102da9190614603565b61041461040f3660046146e4565b610ff9565b6040516102da929190614790565b6102b861043036600461425c565b611274565b604080518082019091526002815261763160f01b60208201526102cd565b6103546113ac565b7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba745b6040519081526020016102da565b6102b861049936600461425c565b6113db565b6102b86104ac36600461425c565b61165c565b6103d16104bf36600461425c565b6117b2565b6102b86104d23660046147b5565b61183c565b6102b86104e53660046147b5565b61184d565b6103d16104f836600461425c565b611857565b6102b861050b36600461425c565b61187b565b6003546001600160a01b0316610354565b6102cd61052f36600461438a565b611922565b6102cd6105423660046148ce565b611a9c565b6102b861055536600461425c565b611c54565b6103d161056836600461425c565b611d96565b6102cd61057b366004614949565b611e5b565b6103d17f000000000000000000000000000000000000000000000000000000000000000081565b61047d6105b5366004614994565b611eee565b6102b86105c83660046149b6565b611f37565b6103546105db3660046149b6565b611fc2565b6102cd6105ee3660046149cf565b612028565b6102cd610601366004614a2b565b6120e8565b6103d1610614366004614aad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b4261047d565b61047d610656366004614994565b6124b4565b6102b8610669366004614ae6565b6124fc565b6103d161067c366004614b31565b61262c565b6102b861068f36600461425c565b61266d565b6106a76106a23660046149b6565b612749565b6040516102da9190614b72565b6103d17f000000000000000000000000000000000000000000000000000000000000000081565b6103d16106e93660046149b6565b600090815260026020526040902054151590565b61047d7f000000000000000000000000000000000000000000000000000000000000000081565b610354612833565b6102b861073a366004614bbf565b6128f9565b61075261074d36600461425c565b612a5b565b6040805193151584529115156020840152908201526060016102da565b6000546201000090046001600160a01b031633146107a85760405162461bcd60e51b815260040161079f90614beb565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000156107e65760405162461bcd60e51b815260040161079f90614c22565b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084a9190614c4e565b60008181526002602052604081205491925081900361087b5760405162461bcd60e51b815260040161079f90614c67565b600060016108898184614cbf565b8154811061089957610899614cd6565b6000918252602090912001546040516311a5465560e21b81526001600160a01b03868116600483015290911691508190634695195490602401600060405180830381600087803b1580156108ec57600080fd5b505af1158015610900573d6000803e3d6000fd5b5050604080518681526001600160a01b03881660208201527f9279aa773f2b588996032d8de89911555039f28b13a11a7c17074330bc082d9a935001905060405180910390a150505050565b606061095733611d96565b6109735760405162461bcd60e51b815260040161079f90614cec565b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109b59250839150612aaa9050565b6109c1576109c1614d2f565b6000610a0287878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe892505050565b9050848160e00151610a149190614d45565b60e0820152610100810151610a2a908590614d5d565b610100820152610a3981612aca565b979650505050505050565b6001600160a01b03811660009081526004602052604081205460ff165b92915050565b6000546201000090046001600160a01b03163314610a975760405162461bcd60e51b815260040161079f90614beb565b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afb9190614c4e565b60008181526002602052604090205490915015610b695760405162461bcd60e51b815260206004820152602660248201527f53463a2061677265656d656e7420636c61737320616c726561647920726567696044820152651cdd195c995960d21b606482015260840161079f565b60015461010011610bcc5760405162461bcd60e51b815260206004820152602760248201527f53463a20737570706f727420757020746f203235362061677265656d656e7420604482015266636c617373657360c81b606482015260840161079f565b60007f0000000000000000000000000000000000000000000000000000000000000000610c86576000604051610c01906141df565b604051809103906000f080158015610c1d573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03868116600483015291925090821690634a0687ef90602401600060405180830381600087803b158015610c6557600080fd5b505af1158015610c79573d6000803e3d6000fd5b5050505080915050610c89565b50815b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0384166001600160a01b0319909116179055546000838152600260205260409081902091909155517f878135063a6cfb3bc333e534b1fdc83f4f12221cad6705c31c0567048a8bd3d190610d2690849086909182526001600160a01b0316602082015260400190565b60405180910390a1505050565b6060610d3e33611d96565b610d5a5760405162461bcd60e51b815260040161079f90614cec565b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d9c9250839150612aaa9050565b610da857610da8614d2f565b600080610e228a6000898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c9081908401838280828437600092019190915250612c5492505050565b915091508115610f5a57610e3581612e1b565b15610ec65780806020019051810190610e4e9190614de3565b9350610e5984612aaa565b610ec15786610e7a5760405162461bcd60e51b815260040161079f90614e17565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929650610ec192508c915060149050612e6f565b610f94565b86610f135760405162461bcd60e51b815260206004820152601f60248201527f53463a204150505f52554c455f4354585f49535f4d414c464f524d4154454400604482015260640161079f565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929650610ec192508c915060169050612e6f565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505050505b5050509695505050505050565b6060610fae338484612ee4565b9392505050565b6060610fc3338585856131c2565b949350505050565b6001600160a01b0316600090815260046020526040902054151590565b610ff06141ec565b610a6182613315565b60608083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061103e9250839150612aaa9050565b61108a5760405162461bcd60e51b815260206004820152601d60248201527f53463a204150505f52554c455f4354585f49535f4e4f545f56414c4944000000604482015260640161079f565b8961109481611d96565b6110b05760405162461bcd60e51b815260040161079f90614e4e565b60006110f187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe892505050565b6101208101519091506001600160a01b031633146111695760405162461bcd60e51b815260206004820152602f60248201527f53463a2063616c6c41677265656d656e7457697468436f6e746578742066726f60448201526e6d2077726f6e67206164647265737360881b606482015260840161079f565b60608101805133909152604080516020601f8c018190048102820181019092528a8152908b908b908190840183828082843760009201919091525050505060a08301526111b582612aca565b955060006111fb8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c92506133e0915050565b96509050801561125a57858060200190518101906112199190614de3565b965061122487612aaa565b61123057611230614d2f565b61123987610fe8565b6001600160a01b0383166060820152925061125383612aca565b9650611263565b611263866134c5565b505050505097509795505050505050565b6000546201000090046001600160a01b031633146112a45760405162461bcd60e51b815260040161079f90614beb565b7f0000000000000000000000000000000000000000000000000000000000000000156112e25760405162461bcd60e51b815260040161079f90614c22565b806001600160a01b031663cd312ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113449190614e90565b156113a05760405162461bcd60e51b815260206004820152602660248201527f53463a2063616e6e6f7420646f776e677261646520746f206e6f6e2075706772604482015265616461626c6560d01b606482015260840161079f565b6113a9816135d0565b50565b60006113d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000546201000090046001600160a01b0316331461140b5760405162461bcd60e51b815260040161079f90614beb565b6003546001600160a01b031661157a577f00000000000000000000000000000000000000000000000000000000000000006114f157600060405161144e906141df565b604051809103906000f08015801561146a573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03848116600483015291925090821690634a0687ef90602401600060405180830381600087803b1580156114b257600080fd5b505af11580156114c6573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b0394909416939093179092555061150d9050565b600380546001600160a01b0319166001600160a01b0383161790555b600360009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561155d57600080fd5b505af1158015611571573d6000803e3d6000fd5b50505050611618565b7f0000000000000000000000000000000000000000000000000000000000000000156115b85760405162461bcd60e51b815260040161079f90614c22565b6003546040516311a5465560e21b81526001600160a01b03838116600483015290911690634695195490602401600060405180830381600087803b1580156115ff57600080fd5b505af1158015611613573d6000803e3d6000fd5b505050505b6003546040516001600160a01b0390911681527fce13a9895a1719ad4493b2ac1a9bfb36070566161abab408e7ecbe586da8d499906020015b60405180910390a150565b3361166681610fcb565b6116b25760405162461bcd60e51b815260206004820152601860248201527f53463a2073656e646572206973206e6f7420616e206170700000000000000000604482015260640161079f565b6116bb82610fcb565b6117075760405162461bcd60e51b815260206004820152601860248201527f53463a20746172676574206973206e6f7420616e206170700000000000000000604482015260640161079f565b61171082610a44565b60ff1661171c82610a44565b60ff16116117805760405162461bcd60e51b815260206004820152602b60248201527f53463a20736f75726365206170702073686f756c64206861766520686967686560448201526a1c88185c1c081b195d995b60aa1b606482015260840161079f565b503360009081526005602090815260408083206001600160a01b0394909416835292905220805460ff19166001179055565b600080546201000090046001600160a01b03166380f70cba30836117d58661380a565b6040518463ffffffff1660e01b81526004016117f393929190614ead565b602060405180830381865afa158015611810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118349190614c4e565b151592915050565b6113a9611847613892565b826138fa565b6113a933826138fa565b6001600160a01b038116600090815260046020526040812054618000161515610a61565b6000546201000090046001600160a01b031633146118ab5760405162461bcd60e51b815260040161079f90614beb565b600054604080516001600160a01b03620100009093048316815291831660208301527f13abda02e63c790d0e2818b251282cfe5cbe0a8abd69c54bf5d2260c0907bd2e910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b606061192d33611d96565b6119495760405162461bcd60e51b815260040161079f90614cec565b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061198b9250839150612aaa9050565b61199757611997614d2f565b600080611a118a6001898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c9081908401838280828437600092019190915250612c5492505050565b915091508115610f9457611a2481612e1b565b15611a445780806020019051810190611a3d9190614de3565b9350610f94565b86611a915760405162461bcd60e51b815260206004820152601f60248201527f53463a204150505f52554c455f4354585f49535f4d414c464f524d4154454400604482015260640161079f565b610f948a6016612e6f565b6060611aa733611d96565b611ac35760405162461bcd60e51b815260040161079f90614cec565b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b059250839150612aaa9050565b611b1157611b11614d2f565b6000611b5289898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe892505050565b9050611b618160600151610fcb565b15611bf65760608101516001600160a01b039081166000908152600560209081526040808320938b168352929052205460ff16611bf65760405162461bcd60e51b815260206004820152602d60248201527f53463a204150505f52554c455f434f4d504f534954455f4150505f49535f4e4f60448201526c1517d5d2125511531254d51151609a1b606482015260840161079f565b805181611c0282614ed1565b60ff169052506003602082015260c08101869052600060e082015261010081018590526001600160a01b038088166101208301528416610140820152611c4781612aca565b9998505050505050505050565b6000546201000090046001600160a01b03163314611c845760405162461bcd60e51b815260040161079f90614beb565b60035460408051634a3852d960e11b815290516000926001600160a01b031691639470a5b29160048083019260209291908290030181865afa158015611cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf29190614ef0565b6040516311a5465560e21b81526001600160a01b03808316600483015291925090831690634695195490602401600060405180830381600087803b158015611d3957600080fd5b505af1158015611d4d573d6000803e3d6000fd5b50506040516001600160a01b038481168252851692507f840acbd291b38534819f47f875839277e502f40e1c7bfea2c5fc2c8017442cd391506020015b60405180910390a25050565b600080826001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190614c4e565b6000818152600260205260409020549091508015801590610fc357506001600160a01b0384166001611e2d8184614cbf565b81548110611e3d57611e3d614cd6565b6000918252602090912001546001600160a01b031614949350505050565b6060611e6633611d96565b611e825760405162461bcd60e51b815260040161079f90614cec565b6000611ec385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe892505050565b905082816101000151611ed69190614d5d565b610100820152611ee581612aca565b95945050505050565b600081815260026020526040812054808203611f1c5760405162461bcd60e51b815260040161079f90614c67565b611f27600182614cbf565b6001901b19841691505092915050565b7f000000000000000000000000000000000000000000000000000000000000000015611fb65760405162461bcd60e51b815260206004820152602860248201527f53463a2061707020726567697374726174696f6e2072657175697265732070656044820152673936b4b9b9b4b7b760c11b606482015260840161079f565b6113a981336001613d3e565b600081815260026020526040812054808203611ff05760405162461bcd60e51b815260040161079f90614c67565b6001611ffc8183614cbf565b8154811061200c5761200c614cd6565b6000918252602090912001546001600160a01b03169392505050565b606061203333611d96565b61204f5760405162461bcd60e51b815260040161079f90614cec565b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506120919250839150612aaa9050565b61209d5761209d614d2f565b6120a78484612e6f565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061212c9250839150612aaa9050565b6121785760405162461bcd60e51b815260206004820152601d60248201527f53463a204150505f52554c455f4354585f49535f4e4f545f56414c4944000000604482015260640161079f565b6001600160a01b0387166000908152600460205260409020548790806121d65760405162461bcd60e51b8152602060048201526013602482015272053463a206e6f7420612073757065722061707606c1b604482015260640161079f565b61800081161561221c5760405162461bcd60e51b815260206004820152601160248201527014d18e88185c1c081a5cc81a985a5b1959607a1b604482015260640161079f565b87878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061225d9150839050613f35565b90506001600160e01b031981166330d9c91560e01b148061228e57506001600160e01b0319811663d86ed3e560e01b145b806122a957506001600160e01b03198116630221347d60e61b145b806122c457506001600160e01b0319811663d86ed3e560e01b145b806122df57506001600160e01b03198116635f9e7d7760e01b145b806122fa57506001600160e01b0319811663d86ed3e560e01b145b156123175760405162461bcd60e51b815260040161079f90614f0d565b600061235889898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe892505050565b6101208101519091506001600160a01b031633146123d05760405162461bcd60e51b815260206004820152602f60248201527f53463a2063616c6c417070416374696f6e57697468436f6e746578742066726f60448201526e6d2077726f6e67206164647265737360881b606482015260840161079f565b606081018051339091526123e382612aca565b975060008061242a8f8f8f8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506133e0915050565b91509150811561249957808060200190518101906124489190614de3565b99506124538a612aaa565b61246f5760405162461bcd60e51b815260040161079f90614e17565b6124788a610fe8565b6001600160a01b0384166060820152935061249284612aca565b99506124a2565b6124a2816134c5565b50505050505050505095945050505050565b6000818152600260205260408120548082036124e25760405162461bcd60e51b815260040161079f90614c67565b6124ed600182614cbf565b6001901b841791505092915050565b600061253e3284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f9192505050565b6000805460405163407b865d60e11b81529293504292620100009091046001600160a01b0316916380f70cba9161257b9130918790600401614ead565b602060405180830381865afa158015612598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bc9190614c4e565b101561261a5760405162461bcd60e51b815260206004820152602760248201527f53463a20696e76616c6964206f72206578706972656420726567697374726174604482015266696f6e206b657960c81b606482015260840161079f565b61262684336001613d3e565b50505050565b6000610fae83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612aaa92505050565b600054610100900460ff166126885760005460ff161561268c565b303b155b6126ef5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161079f565b600054610100900460ff16158015612711576000805461ffff19166101011790555b6000805462010000600160b01b031916620100006001600160a01b038516021790558015612745576000805461ff00191690555b5050565b60606000806001805490506001600160401b0381111561276b5761276b614420565b604051908082528060200260200182016040528015612794578160200160208202803683370190505b50925060009050600091505b60015482101561282b576001821b84161561281b57600182815481106127c8576127c8614cd6565b6000918252602090912001546001600160a01b031683826127e881614f51565b9350815181106127fa576127fa614cd6565b60200260200101906001600160a01b031690816001600160a01b0316815250505b61282482614f51565b91506127a0565b825250919050565b6003546000906001600160a01b031661284c5750600090565b7f00000000000000000000000000000000000000000000000000000000000000001561288257506003546001600160a01b031690565b600360009054906101000a90046001600160a01b03166001600160a01b03166350d75d256040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d69190614ef0565b333b806129485760405162461bcd60e51b815260206004820152601e60248201527f53463a20666163746f7279206d757374206265206120636f6e74726163740000604482015260640161079f565b507f000000000000000000000000000000000000000000000000000000000000000015612a4f57600061297a33613fc4565b6000805460405163407b865d60e11b81529293509091620100009091046001600160a01b0316906380f70cba906129b990309085908790600401614ead565b602060405180830381865afa1580156129d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129fa9190614c4e565b600114905080612a4c5760405162461bcd60e51b815260206004820152601f60248201527f53463a20617574686f72697a656420666163746f727920726571756972656400604482015260640161079f565b50505b61274581836000613d3e565b6001600160a01b038116600090815260046020908152604080832081519283019091525480825215801592918291612aa257805161800081161515935064ff000000001691505b509193909250565b60008151600014158015610a615750600654825160208401201492915050565b60607f0000000000000000000000000000000000000000000000000000000000000000826000015160ff161115612b4e5760405162461bcd60e51b815260206004820152602260248201527f53463a204150505f52554c455f4d41585f4150505f4c4556454c5f5245414348604482015261115160f21b606482015260840161079f565b815160208084015160009260ff1664ff000000009190921b1617905060006080612b7b8560e0015161403e565b6001600160801b0316901b612b938560c0015161403e565b6001600160801b0316179050818460400151856060015186608001518760a00151604051602001612bc8959493929190614f6a565b60408051601f1981840301815282825261010087015161012088015161014089015160208601879052938501919091526001600160a01b03908116606085015290911660808301529060a00160408051601f1981840301815290829052612c329291602001614790565b60408051601f1981840301815291905280516020820120600655949350505050565b600060606001600160a01b038716612c6e57612c6e614d2f565b612c7884846140ab565b935060005a90508615612d1357876001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160401b031686604051612cc79190614fab565b6000604051808303818686fa925050503d8060008114612d03576040519150601f19603f3d011682016040523d82523d6000602084013e612d08565b606091505b509093509150612d9f565b876001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160401b031686604051612d559190614fab565b60006040518083038160008787f1925050503d8060008114612d93576040519150601f19603f3d011682016040523d82523d6000602084013e612d98565b606091505b5090935091505b82612e1057612daf603f82614fc7565b5a1115612dd45785612dc957612dc4826134c5565b612e10565b612dc488600a612e6f565b60405162461bcd60e51b815260206004820152601160248201527053463a206e656564206d6f72652067617360781b604482015260640161079f565b509550959350505050565b6000604082511015612e2f57506000919050565b602082810151906000908214612e49575060009392505050565b506040830151612e58816141a6565b612e63906040614d45565b84511492505050919050565b6001600160a01b038216600090815260046020526040812054618000169003612745576001600160a01b038216600081815260046020526040908190208054618000179055517fbe3aa33bd245135e4e26b223d79d14ea479a47bff09f2b03c53838af1edbb14b90611d8a9084815260200190565b60065460609015612f375760405162461bcd60e51b815260206004820152601d60248201527f53463a204150505f52554c455f4354585f49535f4e4f545f434c45414e000000604482015260640161079f565b6001600160a01b038316600090815260046020526040902054839080612f955760405162461bcd60e51b8152602060048201526013602482015272053463a206e6f7420612073757065722061707606c1b604482015260640161079f565b618000811615612fdb5760405162461bcd60e51b815260206004820152601160248201527014d18e88185c1c081a5cc81a985a5b1959607a1b604482015260640161079f565b836000612fe782613f35565b90506001600160e01b031981166330d9c91560e01b148061301857506001600160e01b0319811663d86ed3e560e01b145b8061303357506001600160e01b03198116630221347d60e61b145b8061304e57506001600160e01b0319811663d86ed3e560e01b145b8061306957506001600160e01b03198116635f9e7d7760e01b145b8061308457506001600160e01b0319811663d86ed3e560e01b145b156130a15760405162461bcd60e51b815260040161079f90614f0d565b600061314d6040518061016001604052806130bb8c610fcb565b6130c65760006130c9565b60015b60ff168152600260208201526040014281526020018b6001600160a01b03168152602001600060e01b6001600160e01b03191681526020016040518060200160405280600081525081526020016000815260200160008152602001600081526020018a6001600160a01b0316815260200160006001600160a01b0316815250612aca565b9050600061315c8989846133e0565b9750905080156131a6578680602001905181019061317a9190614de3565b915061318582612aaa565b6131a15760405162461bcd60e51b815260040161079f90614e17565b6131af565b6131af876134c5565b5050600060065550929695505050505050565b600654606090156132155760405162461bcd60e51b815260206004820152601d60248201527f53463a204150505f52554c455f4354585f49535f4e4f545f434c45414e000000604482015260640161079f565b8361321f81611d96565b61323b5760405162461bcd60e51b815260040161079f90614e4e565b600061324685613f35565b905060006132e26040518061016001604052806132628b610fcb565b61326d576000613270565b60015b60ff168152600160208201526040014281526020018a6001600160a01b03168152602001846001600160e01b031916815260200187815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815250612aca565b905060006132f18888846133e0565b955090508061330357613303856134c5565b50506000600655509095945050505050565b61331d6141ec565b606080838060200190518101906133349190614fe9565b815191935091506000906133519084016020908101908501615042565b60a08901526001600160e01b03191660808801526001600160a01b031660608701526040860152602081811c600f168187015260ff90911685528251600092506133a29190840181019084016150c6565b6001600160a01b03908116610140890152166101208701526101008601526001600160801b03811660c086015260801c60e085015250919392505050565b600060606001600160a01b0385166133fa576133fa614d2f565b61340484846140ab565b9350846001600160a01b03168460405161341e9190614fab565b6000604051808303816000865af19150503d806000811461345b576040519150601f19603f3d011682016040523d82523d6000602084013e613460565b606091505b50909250905081156134bd5760008151116134bd5760405162461bcd60e51b815260206004820152601960248201527f53463a204150505f52554c455f4354585f49535f454d50545900000000000000604482015260640161079f565b935093915050565b6004815110156135175760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a20746172676574207265766572742829000000000000604482015260640161079f565b602081015163b1b7848f60e01b6001600160e01b03198216016135c75760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b815291929161079f91849101614369565b81518060208401fd5b60006135fa7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036136505760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c65000000604482015260640161079f565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561368e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b29190614c4e565b7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba741461372c5760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b606482015260840161079f565b6001600160a01b03811630036137845760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f7000000000000000604482015260640161079f565b6137ac817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba74604080519182526001600160a01b038416602083015201611651565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b6000601836108015906138a957506138a9336117b2565b6138ed5760405162461bcd60e51b81526020600482015260156024820152742737ba103a393ab9ba32b2103337b93bb0b93232b960591b604482015260640161079f565b5060131936013560601c90565b60005b8151811015613d3957600082828151811061391a5761391a614cd6565b6020026020010151600001519050600163ffffffff168163ffffffff16036139fa5760008084848151811061395157613951614cd6565b6020026020010151604001518060200190518101906139709190615111565b9150915084848151811061398657613986614cd6565b6020026020010151602001516001600160a01b03166362aa52878784846040518463ffffffff1660e01b81526004016139c193929190614ead565b600060405180830381600087803b1580156139db57600080fd5b505af11580156139ef573d6000803e3d6000fd5b505050505050613d26565b60011963ffffffff821601613ae0576000806000858581518110613a2057613a20614cd6565b602002602001015160400151806020019051810190613a3f919061513f565b925092509250858581518110613a5757613a57614cd6565b6020908102919091018101510151604051630b682aeb60e11b81526001600160a01b0389811660048301528581166024830152848116604483015260648201849052909116906316d055d690608401600060405180830381600087803b158015613ac057600080fd5b505af1158015613ad4573d6000803e3d6000fd5b50505050505050613d26565b60641963ffffffff821601613bb057828281518110613b0157613b01614cd6565b6020026020010151602001516001600160a01b031663ca78946485858581518110613b2e57613b2e614cd6565b602002602001015160400151806020019051810190613b4d9190614c4e565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015613b9357600080fd5b505af1158015613ba7573d6000803e3d6000fd5b50505050613d26565b60651963ffffffff821601613bfe57828281518110613bd157613bd1614cd6565b6020026020010151602001516001600160a01b031663245887fc85858581518110613b2e57613b2e614cd6565b60c81963ffffffff821601613c7657600080848481518110613c2257613c22614cd6565b602002602001015160400151806020019051810190613c419190614fe9565b91509150613c6e86868681518110613c5b57613c5b614cd6565b60200260200101516020015184846131c2565b505050613d26565b60c91963ffffffff821601613cd057613cca84848481518110613c9b57613c9b614cd6565b602002602001015160200151858581518110613cb957613cb9614cd6565b602002602001015160400151612ee4565b50613d26565b60405162461bcd60e51b815260206004820152602560248201527f53463a20756e6b6e6f776e2062617463682063616c6c206f7065726174696f6e604482015264207479706560d81b606482015260840161079f565b5080613d3181614f51565b9150506138fd565b505050565b323303613d995760405162461bcd60e51b8152602060048201526024808201527f53463a204150505f52554c455f4e4f5f524547495354524154494f4e5f464f526044820152635f454f4160e01b606482015260840161079f565b8015613e0757813b8015613e055760405162461bcd60e51b815260206004820152602d60248201527f53463a204150505f52554c455f524547495354524154494f4e5f4f4e4c595f4960448201526c272fa1a7a729aa292aa1aa27a960991b606482015260840161079f565b505b64ff000080ff198316158015613e1f575060ff831615155b8015613e2d57506180008316155b613e795760405162461bcd60e51b815260206004820152601760248201527f53463a20696e76616c696420636f6e66696720776f7264000000000000000000604482015260640161079f565b6001600160a01b03821660009081526004602052604090205415613edf5760405162461bcd60e51b815260206004820152601a60248201527f53463a2061707020616c72656164792072656769737465726564000000000000604482015260640161079f565b60408051602080820183528582526001600160a01b038516600081815260049092528382209251909255915190917f0d540ad8f39e07d19909687352b9fa017405d93c91a6760981fbae9cf28bfef791a2505050565b6000600482511015613f895760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e76616c69642063616c6c446174610000000000604482015260640161079f565b506020015190565b60008282604051602001613fa6929190615182565b60405160208183030381529060405280519060200120905092915050565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c001613875565b60006001600160801b038211156140a75760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161079f565b5090565b8151808301516060919080156141185760405162461bcd60e51b815260206004820152602c60248201527f53463a20706c61636572686f6c646572206374782073686f756c64206861766560448201526b040f4cae4de40d8cadccee8d60a31b606482015260840161079f565b50601f198101845282518490848161412f816141a6565b6141399190614cbf565b6001600160401b0381111561415057614150614420565b6040519080825280601f01601f19166020018201604052801561417a576020820181803683370190505b5060405160200161418e9493929190615207565b60405160208183030381529060405291505092915050565b60008082601f16116141b95760006141bc565b60015b60ff166141ca602084614fc7565b6141d49190614d45565b610a61906020615256565b61024a8061527683390190565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6001600160a01b03811681146113a957600080fd5b60006020828403121561426e57600080fd5b8135610fae81614247565b60008083601f84011261428b57600080fd5b5081356001600160401b038111156142a257600080fd5b6020830191508360208285010111156142ba57600080fd5b9250929050565b600080600080606085870312156142d757600080fd5b84356001600160401b038111156142ed57600080fd5b6142f987828801614279565b90989097506020870135966040013595509350505050565b60005b8381101561432c578181015183820152602001614314565b838111156126265750506000910152565b60008151808452614355816020860160208601614311565b601f01601f19169290920160200192915050565b602081526000610fae602083018461433d565b80151581146113a957600080fd5b600080600080600080608087890312156143a357600080fd5b86356143ae81614247565b955060208701356001600160401b03808211156143ca57600080fd5b6143d68a838b01614279565b9097509550604089013591506143eb8261437c565b9093506060880135908082111561440157600080fd5b5061440e89828a01614279565b979a9699509497509295939492505050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561445857614458614420565b60405290565b604051601f8201601f191681016001600160401b038111828210171561448657614486614420565b604052919050565b60006001600160401b038211156144a7576144a7614420565b50601f01601f191660200190565b600082601f8301126144c657600080fd5b81356144d96144d48261448e565b61445e565b8181528460208386010111156144ee57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561451e57600080fd5b823561452981614247565b915060208301356001600160401b0381111561454457600080fd5b614550858286016144b5565b9150509250929050565b60008060006060848603121561456f57600080fd5b833561457a81614247565b925060208401356001600160401b038082111561459657600080fd5b6145a2878388016144b5565b935060408601359150808211156145b857600080fd5b506145c5868287016144b5565b9150509250925092565b6000602082840312156145e157600080fd5b81356001600160401b038111156145f757600080fd5b610fc3848285016144b5565b6020815261461760208201835160ff169052565b6000602083015161462d604084018260ff169052565b5060408301516060830152606083015161465260808401826001600160a01b03169052565b5060808301516001600160e01b0319811660a08401525060a08301516101608060c085015261468561018085018361433d565b915060c085015160e085015260e08501516101008181870152808701519150506101208181870152808701519150506101406146cb818701836001600160a01b03169052565b909501516001600160a01b031693019290925250919050565b60008060008060008060006080888a0312156146ff57600080fd5b873561470a81614247565b965060208801356001600160401b038082111561472657600080fd5b6147328b838c01614279565b909850965060408a013591508082111561474b57600080fd5b6147578b838c01614279565b909650945060608a013591508082111561477057600080fd5b5061477d8a828b01614279565b989b979a50959850939692959293505050565b6040815260006147a3604083018561433d565b8281036020840152611ee5818561433d565b600060208083850312156147c857600080fd5b82356001600160401b03808211156147df57600080fd5b818501915085601f8301126147f357600080fd5b81358181111561480557614805614420565b8060051b61481485820161445e565b918252838101850191858101908984111561482e57600080fd5b86860192505b83831015611c475782358581111561484c5760008081fd5b86016060818c03601f19018113156148645760008081fd5b61486c614436565b8983013563ffffffff811681146148835760008081fd5b815260408381013561489481614247565b828c01529183013591888311156148ab5760008081fd5b6148b98e8c858701016144b5565b90820152845250509186019190860190614834565b60008060008060008060a087890312156148e757600080fd5b86356001600160401b038111156148fd57600080fd5b61490989828a01614279565b909750955050602087013561491d81614247565b93506040870135925060608701359150608087013561493b81614247565b809150509295509295509295565b60008060006040848603121561495e57600080fd5b83356001600160401b0381111561497457600080fd5b61498086828701614279565b909790965060209590950135949350505050565b600080604083850312156149a757600080fd5b50508035926020909101359150565b6000602082840312156149c857600080fd5b5035919050565b600080600080606085870312156149e557600080fd5b84356001600160401b038111156149fb57600080fd5b614a0787828801614279565b9095509350506020850135614a1b81614247565b9396929550929360400135925050565b600080600080600060608688031215614a4357600080fd5b8535614a4e81614247565b945060208601356001600160401b0380821115614a6a57600080fd5b614a7689838a01614279565b90965094506040880135915080821115614a8f57600080fd5b50614a9c88828901614279565b969995985093965092949392505050565b60008060408385031215614ac057600080fd5b8235614acb81614247565b91506020830135614adb81614247565b809150509250929050565b600080600060408486031215614afb57600080fd5b8335925060208401356001600160401b03811115614b1857600080fd5b614b2486828701614279565b9497909650939450505050565b60008060208385031215614b4457600080fd5b82356001600160401b03811115614b5a57600080fd5b614b6685828601614279565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b81811015614bb35783516001600160a01b031683529284019291840191600101614b8e565b50909695505050505050565b60008060408385031215614bd257600080fd5b8235614bdd81614247565b946020939093013593505050565b6020808252601b908201527f53463a206f6e6c7920676f7665726e616e636520616c6c6f7765640000000000604082015260600190565b60208082526012908201527153463a206e6f6e2075706772616461626c6560701b604082015260600190565b600060208284031215614c6057600080fd5b5051919050565b60208082526022908201527f53463a2061677265656d656e7420636c617373206e6f74207265676973746572604082015261195960f21b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082821015614cd157614cd1614ca9565b500390565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f53463a2073656e646572206973206e6f74206c6973746564206167726565656d604082015262195b9d60ea1b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b60008219821115614d5857614d58614ca9565b500190565b600080821280156001600160ff1b0384900385131615614d7f57614d7f614ca9565b600160ff1b8390038412811615614d9857614d98614ca9565b50500190565b600082601f830112614daf57600080fd5b8151614dbd6144d48261448e565b818152846020838601011115614dd257600080fd5b610fc3826020830160208701614311565b600060208284031215614df557600080fd5b81516001600160401b03811115614e0b57600080fd5b610fc384828501614d9e565b6020808252601c908201527f53463a204150505f52554c455f4354585f49535f524541444f4e4c5900000000604082015260600190565b60208082526022908201527f53463a206f6e6c79206c6973746564206167726565656d656e7420616c6c6f77604082015261195960f21b606082015260800190565b600060208284031215614ea257600080fd5b8151610fae8161437c565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060ff821660ff8103614ee757614ee7614ca9565b60010192915050565b600060208284031215614f0257600080fd5b8151610fae81614247565b60208082526024908201527f53463a2061677265656d656e742063616c6c6261636b206973206e6f742061636040820152633a34b7b760e11b606082015260800190565b600060018201614f6357614f63614ca9565b5060010190565b858152602081018590526001600160a01b03841660408201526001600160e01b03198316606082015260a060808201819052600090610a399083018461433d565b60008251614fbd818460208701614311565b9190910192915050565b600082614fe457634e487b7160e01b600052601260045260246000fd5b500490565b60008060408385031215614ffc57600080fd5b82516001600160401b038082111561501357600080fd5b61501f86838701614d9e565b9350602085015191508082111561503557600080fd5b5061455085828601614d9e565b600080600080600060a0868803121561505a57600080fd5b8551945060208601519350604086015161507381614247565b60608701519093506001600160e01b03198116811461509157600080fd5b60808701519092506001600160401b038111156150ad57600080fd5b6150b988828901614d9e565b9150509295509295909350565b600080600080608085870312156150dc57600080fd5b845193506020850151925060408501516150f581614247565b606086015190925061510681614247565b939692955090935050565b6000806040838503121561512457600080fd5b825161512f81614247565b6020939093015192949293505050565b60008060006060848603121561515457600080fd5b835161515f81614247565b602085015190935061517081614247565b80925050604084015190509250925092565b60608152604160608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e726567697374726174696f6e4b6560a0820152607960f81b60c082015260018060a01b038316602082015260e060408201526000610fc360e083018461433d565b60008551602061521a8285838b01614311565b8184019150868252855161523381838501848a01614311565b855192019161524781838501848901614311565b91909101019695505050505050565b600081600019048311821515161561527057615270614ca9565b50029056fe608060405234801561001057600080fd5b5061022a806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f6100543660046101c4565b61006b565b610069610064610171565b6101a0565b565b6001600160a01b0381166100c65760405162461bcd60e51b815260206004820152601760248201527f5555505350726f78793a207a65726f206164647265737300000000000000000060448201526064015b60405180910390fd5b60006100f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316146101465760405162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a6564000060448201526064016100bd565b61016e817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50565b600061019b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b3660008037600080366000845af43d6000803e8080156101bf573d6000f35b3d6000fd5b6000602082840312156101d657600080fd5b81356001600160a01b03811681146101ed57600080fd5b939250505056fea264697066735822122055e86118ce2711c610170f2e930678ba3d15a2874e37c60b77b322eebc0ffc5f64736f6c634300080d0033a2646970667358221220d1090cfd1b77e3c3cac1e2e547d8953e58d4dffa08506a116a6a8d11ade0ed1464736f6c634300080d003360a06040523480156200001157600080fd5b506040516200550f3803806200550f833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b60805161547b620000946000396000610777015261547b6000f3fe608060405234801561001057600080fd5b50600436106101a85760003560e01c806350d75d25116100f957806394229ecb11610097578063aabd266811610071578063aabd26681461042e578063b4b333c614610441578063e6a1e88814610454578063e8e7e2d11461046757600080fd5b806394229ecb146103ed5780639b2e48bc146104005780639cb28b72146102aa57600080fd5b806362fc305e116100d357806362fc305e1461038e5780637730599e146103a1578063811b3d40146103c75780638d997f6e146103da57600080fd5b806350d75d251461035357806352d1902d1461037357806354b770e31461037b57600080fd5b806326b0f536116101665780634b839e0b116101405780634b839e0b146102e05780634c8b181f146103035780634fe9c2911461031657806350209a621461034057600080fd5b806326b0f536146102aa578063354b9590146102b857806346951954146102cb57600080fd5b8062422bbe146101ad57806304aafa49146101e55780630602f7db146101ff578063062e56ec1461022557806309d256ef146102455780630f1ac49514610274575b600080fd5b6101c06101bb3660046146bd565b61047a565b6040805193845260ff9092166020840152600b0b908201526060015b60405180910390f35b6101f164010000000081565b6040519081526020016101dc565b61021261020d366004614708565b6104b0565b604051600b9190910b81526020016101dc565b610238610233366004614776565b6104d1565b6040516101dc9190614837565b610258610253366004614708565b6104eb565b6040805160ff9093168352600b9190910b6020830152016101dc565b61028761028236600461484a565b61050f565b60408051948552600b9390930b60208501529183015260608201526080016101dc565b6101f160016001605f1b0381565b6102386102c6366004614895565b610545565b6102de6102d9366004614921565b61076c565b005b6102f36102ee36600461493e565b6107f0565b60405190151581526020016101dc565b61023861031136600461497f565b6108c7565b61032961032436600461484a565b6109e1565b6040805192151583526020830191909152016101dc565b61023861034e3660046149fb565b610ac3565b61035b610b96565b6040516001600160a01b0390911681526020016101dc565b6101f1610bc5565b610238610389366004614776565b610c29565b61023861039c3660046149fb565b610c41565b7fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd36101f1565b6102386103d5366004614a4b565b610cf4565b6101f16103e8366004614a8f565b610f7e565b6102386103fb366004614895565b611199565b61041361040e36600461493e565b611379565b604080519384526020840192909252908201526060016101dc565b61028761043c366004614708565b6113d3565b61023861044f36600461497f565b6113e5565b6102876104623660046146bd565b611479565b61021261047536600461484a565b6114b4565b600080600061048985856114ce565b925060006104978785611539565b8051602090910151959990985094965093945050505050565b6000806104bc846115fe565b5090506104c98184611779565b949350505050565b60606104e285856000808787610cf4565b95945050505050565b60008060006104fa8585611539565b80516020909101519097909650945050505050565b600080600080600061052187876117e8565b805160208201516040830151606090930151919b909a509198509650945050505050565b606060006105898885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118a192505050565b9050866001600160a01b031681606001516001600160a01b0316036105f55760405162461bcd60e51b815260206004820152601760248201527f4346413a20455f4e4f5f53454e4445525f55504441544500000000000000000060448201526064015b60405180910390fd5b60008061060b8a6106068b8b611a65565b611a8d565b9150915060008060006106238d8d886060015161047a565b925092509250610634826001611ad4565b6106805760405162461bcd60e51b815260206004820152601960248201527f455f4e4f5f4f50455241544f525f5550444154455f464c4f570000000000000060448201526064016105ec565b6000600b82900b60016001605f1b0314806106a557508a600b0b8560200151600b0b12155b6106c75760208501516106b8908c614ada565b6106c29083614ada565b6106c9565b815b9050600081600b0b12156106ef5760405162461bcd60e51b81526004016105ec90614b2a565b6106fb8e858584611b2f565b5050505061072960408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160a01b03808c1682528a8116602083015289166040820152600b88900b606082015261075d8183858a8a89611bb8565b9b9a5050505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107e45760405162461bcd60e51b815260206004820152601960248201527f6f6e6c7920686f73742063616e2075706461746520636f64650000000000000060448201526064016105ec565b6107ed81611d3d565b50565b604051633acd4df360e21b81526001600160a01b03838116600483015260248201839052600091829186169063eb3537cc90604401606060405180830381865afa158015610842573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108669190614b6b565b505090506000811261087c5760019150506108c0565b600080610888876115fe565b91509150600061089888886117e8565b91505060006108aa8260400151611f4b565b90506108b885828686611fb9565b955050505050505b9392505050565b6060600061090b8785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118a192505050565b9050600061091e8888846060015161047a565b50915050600061092f826002611ad4565b90508061097e5760405162461bcd60e51b815260206004820152601960248201527f455f4e4f5f4f50455241544f525f44454c4554455f464c4f570000000000000060448201526064016105ec565b6040805160808101825260008082526020820181905291810182905260608101919091525b6001600160a01b03808b168252898116602083015288166040820152600060608201526109d38183898988611ff6565b9a9950505050505050505050565b6000806000846001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a489190614ba4565b9050806001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac9190614bc1565b9150610ab98585846107f0565b9250509250929050565b60606000610b078785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118a192505050565b9050610b3360408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160a01b03808916825260608084015182166020840181905291891660408401819052600b89900b91840191909152600091610b7191611a65565b9050600080610b84846000015184611a8d565b9150915061075d8482848b8b8a611bb8565b6000610bc07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000306001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc09190614bc1565b60606104e28585600760016001605f1b038787610cf4565b60606000610c858785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118a192505050565b9050610cb160408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160a01b038089168252606080840151821660208401529088166040830152600b87900b90820152610ce88186868561278d565b98975050505050505050565b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610d3b925087915061292d9050565b610d875760405162461bcd60e51b815260206004820152601860248201527f4346413a20556e636c65616e207065726d697373696f6e73000000000000000060448201526064016105ec565b6000610dc98885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118a192505050565b9050866001600160a01b031681606001516001600160a01b031603610e305760405162461bcd60e51b815260206004820152601e60248201527f4346413a20455f4e4f5f53454e4445525f464c4f575f4f50455241544f52000060448201526064016105ec565b600085600b0b1215610e845760405162461bcd60e51b815260206004820152601c60248201527f4346413a20455f4e4f5f4e454741544956455f414c4c4f57414e43450000000060448201526064016105ec565b6040805180820190915260ff87168152600b86900b60208201526060820151600090610eb0908a6114ce565b9050896001600160a01b031663a1b2bf8b82610ecb85612934565b6040518363ffffffff1660e01b8152600401610ee8929190614c15565b600060405180830381600087803b158015610f0257600080fd5b505af1158015610f16573d6000803e3d6000fd5b50505060608401516040805160ff8c168152600b8b900b60208201526001600160a01b03808e169450928316928e16917fc0d5d3a6ac18cc1769788c925e6e7fc89cd47e4270a42884736fa9b3ec09f3a8910160405180910390a45050509695505050505050565b600080836001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe39190614ba4565b90506000816001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110499190614ba4565b90506000816001600160a01b03166380f70cba84887feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc46040518463ffffffff1660e01b815260040161109d93929190614c2e565b602060405180830381865afa1580156110ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110de9190614bc1565b90506000826001600160a01b03166380f70cba85897fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f786040518463ffffffff1660e01b815260040161113293929190614c2e565b602060405180830381865afa15801561114f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111739190614bc1565b9050602081901c63ffffffff1661118b8382896129aa565b955050505050505b92915050565b606060006111dd8885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118a192505050565b9050866001600160a01b031681606001516001600160a01b0316036112445760405162461bcd60e51b815260206004820152601760248201527f4346413a20455f4e4f5f53454e4445525f43524541544500000000000000000060448201526064016105ec565b60008060006112588b8b866060015161047a565b925092509250611269826000611ad4565b6112b55760405162461bcd60e51b815260206004820152601e60248201527f4346413a20455f4e4f5f4f50455241544f525f4352454154455f464c4f57000060448201526064016105ec565b6000600b82900b60016001605f1b03146112d8576112d38983614ada565b6112da565b815b9050600081600b0b12156113005760405162461bcd60e51b81526004016105ec90614b2a565b61130c8c858584611b2f565b5050505061133a60408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160a01b03808a168252888116602083015287166040820152600b86900b606082015261136c8186868561278d565b9998505050505050505050565b600080600080600061138b88886117e8565b9150915081156113c8578060200151600b0b8160000151876113ad9190614c52565b6113b79190614c91565b945080604001519350806060015192505b505093509350939050565b60008060008060006105218787611a8d565b606060006114298785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118a192505050565b9050600061143c8888846060015161047a565b50915050600061144d826002611ad4565b90506109a360408051608081018252600080825260208201819052918101829052606081019190915290565b600080600080600061148f886106068989611a65565b805160208201516040830151606090930151919c909b50919950975095505050505050565b6000806114c184846117e8565b6020015195945050505050565b6000828260405160200161151b9291906060808252600c908201526b333637bba7b832b930ba37b960a11b60808201526001600160a01b0392831660208201529116604082015260a00190565b60405160208183030381529060405280519060200120905092915050565b6040805180820182526000808252602082018190529151636c2d9f2f60e01b8152306004820152602481018490526001604482015282906001600160a01b03861690636c2d9f2f90606401600060405180830381865afa1580156115a1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115c99190810190614d87565b90506115f1816000815181106115e1576115e1614e21565b602002602001015160001c612a7f565b92509250505b9250929050565b6000806000836001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015611641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116659190614ba4565b90506000816001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cb9190614ba4565b90506000816001600160a01b03166380f70cba84887fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f786040518463ffffffff1660e01b815260040161171f93929190614c2e565b602060405180830381865afa15801561173c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117609190614bc1565b63ffffffff602082901c81169891169650945050505050565b600060016001605f1b038211156117d25760405162461bcd60e51b815260206004820152601b60248201527f4346413a206465706f736974206e756d62657220746f6f20626967000000000060448201526064016105ec565b63ffffffff198216915060006104c98484614e4d565b60006117f26145f6565b604051634b61cc3360e01b81523060048201526001600160a01b038481166024830152600060448301819052600160648401529190861690634b61cc33906084015b600060405180830381865afa158015611851573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118799190810190614d87565b90506115f18160008151811061189157611891614e21565b602002602001015160001c612ab7565b6118a9614621565b336001600160a01b0316836001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119159190614ba4565b6001600160a01b03161461195f5760405162461bcd60e51b81526020600482015260116024820152701d5b985d5d1a1bdc9a5e9959081a1bdcdd607a1b60448201526064016105ec565b604051632fd0a1cd60e21b8152339063bf42873490611982908590600401614837565b602060405180830381865afa15801561199f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c39190614e71565b6119fd5760405162461bcd60e51b815260206004820152600b60248201526a0d2dcecc2d8d2c840c6e8f60ab1b60448201526064016105ec565b604051631fb6491d60e11b81523390633f6c923a90611a20908590600401614837565b600060405180830381865afa158015611a3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108c09190810190614f13565b604080516001600160a01b03808516602083015283169181019190915260009060600161151b565b6000611a976145f6565b604051636c2d9f2f60e01b815230600482015260248101849052600160448201526000906001600160a01b03861690636c2d9f2f90606401611834565b600080826002811115611ae957611ae961501a565b03611afa5750600182811614611193565b6001826002811115611b0e57611b0e61501a565b03611b215750600182811c811614611193565b505060021c60019081161490565b6040805180820190915260ff83168152600b82900b60208201526001600160a01b03851663a1b2bf8b85611b6284612934565b6040518363ffffffff1660e01b8152600401611b7f929190614c15565b600060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050505050505050565b60606000611bc68884612b17565b91505085611c115760405162461bcd60e51b815260206004820152601860248201527710d1904e88199b1bddc8191bd95cc81b9bdd08195e1a5cdd60421b60448201526064016105ec565b6040888101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa158015611c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7f9190614e71565b15611cdb57611cd488604001518960000151838a89898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b925060019150612c8a9050565b9150611d26565b611d238860000151828988888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506133a7915050565b91505b8751611d32908461347f565b509695505050505050565b6000611d677f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603611dbd5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016105ec565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1f9190614bc1565b611e27610bc5565b14611e805760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016105ec565b6001600160a01b0381163003611ed85760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016105ec565b611f00817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc611f29610bc5565b604080519182526001600160a01b03841660208301520160405180910390a150565b60006001600160ff1b03821115611fb55760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016105ec565b5090565b600080611fc68587615030565b90506000611fd48587615071565b9050611fe0848661509f565b611fea8284615071565b13979650505050505050565b6040805160c0810182526000808252602082018190529181018290526060818101839052608082019290925260a0810182905260208701516001600160a01b03166120795760405162461bcd60e51b81526020600482015260136024820152724346413a2073656e646572206973207a65726f60681b60448201526064016105ec565b60408701516001600160a01b03166120cb5760405162461bcd60e51b81526020600482015260156024820152744346413a207265636569766572206973207a65726f60581b60448201526064016105ec565b6120dd87602001518860400151611a65565b8082526020808901516001600160a01b03908116918401919091526040808a01518216908401526060808601519091169083015260006080830181905260a0808601519084015288519091829161213391611a8d565b915091508161217f5760405162461bcd60e51b815260206004820152601860248201527710d1904e88199b1bddc8191bd95cc81b9bdd08195e1a5cdd60421b60448201526064016105ec565b885160208a01516040808801519051633acd4df360e21b81526000936001600160a01b03169263eb3537cc926121cb926004016001600160a01b03929092168252602082015260400190565b606060405180830381865afa1580156121e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220c9190614b6b565b5050905089602001516001600160a01b031686606001516001600160a01b031614158015612254575089604001516001600160a01b031686606001516001600160a01b031614155b801561225e575088155b156123aa5760208a0151604051636b4f333560e01b81526001600160a01b0390911660048201523390636b4f333590602401602060405180830381865afa1580156122ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d19190614e71565b158015612349575060408a8101519051636b4f333560e01b81526001600160a01b0390911660048201523390636b4f333590602401602060405180830381865afa158015612323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123479190614e71565b155b156123aa57600081126123aa5760405162461bcd60e51b815260206004820152602360248201527f4346413a2073656e646572206163636f756e74206973206e6f7420637269746960448201526218d85b60ea1b60648201526084016105ec565b60008112156123c8576123c88a600001518286858a60600151613596565b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060208b015160608801519196506001600160a01b039081169116036124be5760408a8101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa158015612467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248b9190614e71565b156124af576124a88a604001518b600001518685898b6002612c8a565b9450612780565b89516124a8908584888a6133a7565b89604001516001600160a01b031686606001516001600160a01b0316036125f25760208a0151604051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa158015612529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254d9190614e71565b1561256a576124a88a602001518b600001518685898b6002612c8a565b60408a8101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa1580156125b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d89190614e71565b156124af576124a860008b600001518685898b6002612c8a565b60208a0151604051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa15801561263c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126609190614e71565b801561266c5750600081125b156126e65760208a0151604051635b92108f60e11b8152339163b724211e9161269c918991600b906004016150b6565b6000604051808303816000875af11580156126bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126e391908101906150e4565b94505b60408a8101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa158015612730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127549190614e71565b15612771576124a88a604001518b600001518685898b6002612c8a565b89516109d3908584888a6133a7565b5050505095945050505050565b606060008061279c8785612b17565b915091506000806127b1896000015185611a8d565b9150915081156128035760405162461bcd60e51b815260206004820152601760248201527f4346413a20666c6f7720616c726561647920657869737400000000000000000060448201526064016105ec565b6040898101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa15801561284d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128719190614e71565b156128ca576128c389604001518a6000015185848c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052508f93509150612c8a9050565b9450612915565b612912896000015184838b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d92506133a7915050565b94505b8851612921908761347f565b50505050949350505050565b60f8161590565b606060008260200151600b0b121561294e5761294e615119565b60408051600180825281830190925290602080830190803683370190505090508160200151600b0b6080836000015160ff16901b1760001b8160008151811061299957612999614e21565b602002602001018181525050919050565b60008082600b0b13612a0a5760405162461bcd60e51b815260206004820152602360248201527f4346413a206e6f7420666f72206e6f6e2d706f73697469766520666c6f77207260448201526261746560e81b60648201526084016105ec565b60016001605f1b03612a2084600b85900b61512f565b1115612a675760405162461bcd60e51b81526020600482015260166024820152754346413a20666c6f77207261746520746f6f2062696760501b60448201526064016105ec565b6000612a7383856137a2565b90506104e28582613821565b6040805180820190915260008082526020820152811580159190612ab257600b83900b6020820152608083901c60ff1681525b915091565b6000612ac16145f6565b821580159250612ab25760e083901c8152608083901c6bffffffffffffffffffffffff16600b0b6020808301919091526bffffffffffffffff0000000084821c811660408401529084901b166060820152915091565b6040805160c08101825260008082526020820181905291810182905260608082018390526080820183905260a082015260408401516001600160a01b0316612b995760405162461bcd60e51b81526020600482015260156024820152744346413a207265636569766572206973207a65726f60581b60448201526064016105ec565b612bab84602001518560400151611a65565b8082526020808601516001600160a01b0390811691840182905260408088015182169085018190526060808801519092168286015290870151600b0b608085015260a0808701519085015291935003612c3a5760405162461bcd60e51b81526020600482015260116024820152704346413a206e6f2073656c6620666c6f7760781b60448201526064016105ec565b60008160800151600b0b136115f75760405162461bcd60e51b81526020600482015260166024820152754346413a20696e76616c696420666c6f77207261746560501b60448201526064016105ec565b82612c9361467c565b6001600160a01b03891615612e7c576000612d28898b8a600001518b602001518c60400151604051602001612cde9291906001600160a01b0392831681529116602082015260400190565b60408051601f1981840301815260e08301825260006080840181905260a0840181905260c08401526001600160a01b03958616835293909416602082015292830152606082015290565b90506000846002811115612d3e57612d3e61501a565b03612d535764010000000060c0820152612d88565b6001846002811115612d6757612d6761501a565b03612d7c5764040000000060c0820152612d88565b64100000000060c08201525b612d928187613837565b82526040850151610140860151612dac91908b8b8b6139ee565b506080830152508451612dc090600161514e565b60ff168160800151612dd2919061512f565b60808201526060870151612de590611f4b565b60a08201526000846002811115612dfe57612dfe61501a565b03612e135764020000000060c0820152612e48565b6001846002811115612e2757612e2761501a565b03612e3c5764080000000060c0820152612e48565b64200000000060c08201525b612e5781836000015185613e40565b60408401919091528851909350612e6f908a90611a8d565b602084015250612e9a9050565b612e9284604001518561014001518a8a8a6139ee565b602084015250505b6000816040015161010001511315612ed957612ece612ec9612ec4836040015161010001516140a9565b6140fb565b611f4b565b604082015161010001525b6000612ee88760600151611f4b565b82604001516101000151612efc9190614c52565b9050612f2281612f13846020015160400151611f4b565b612f1d9190615030565b6140a9565b82602001516040018181525050612f4481612f13846020015160600151611f4b565b60208301805160600191909152885190516001600160a01b038b169163a1b2bf8b91612f6f9061412f565b6040518363ffffffff1660e01b8152600401612f8c929190614c15565b600060405180830381600087803b158015612fa657600080fd5b505af1158015612fba573d6000803e3d6000fd5b50505050612fd689896020015160008460008a604001516141a0565b50612fee898960400151600080858a604001516141a0565b506101408501516001600160a01b031615806130205750886001600160a01b03168561014001516001600160a01b0316145b1561309e57602082015160409081015190516303c9790560e11b81523391630792f20a916130549187918690600401615173565b6000604051808303816000875af1158015613073573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261309b91908101906150e4565b92505b6040888101519051631e51d6a760e11b81526001600160a01b0390911660048201523390633ca3ad4e90602401602060405180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310c9190614e71565b1561339a57604088810151868201519151633acd4df360e21b81526001600160a01b0391821660048201526024810192909252600091908b169063eb3537cc90604401606060405180830381865afa15801561316c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131909190614b6b565b509091505060008112156133985760028560028111156131b2576131b261501a565b0361333d576040808a01519051635b92108f60e11b8152339163b724211e916131e2918891600c906004016150b6565b6000604051808303816000875af1158015613201573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261322991908101906150e4565b9350600061325161323983615198565b61324c600061324787615198565b614346565b614355565b90508a6001600160a01b031663cf97256d8b602001518361327190615198565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156132b757600080fd5b505af11580156132cb573d6000803e3d6000fd5b5050505060408a810151905163cf97256d60e01b81526001600160a01b03918216600482015260248101839052908c169063cf97256d90604401600060405180830381600087803b15801561331f57600080fd5b505af1158015613333573d6000803e3d6000fd5b5050505050613398565b60405162461bcd60e51b815260206004820152602a60248201527f4346413a204150505f52554c455f4e4f5f435249544943414c5f524543454956604482015269115497d050d0d3d5539560b21b60648201526084016105ec565b505b5050979650505050505050565b606083810151156133ba576133ba615119565b60006133c46145f6565b6133da84604001518561014001518a8a8a6139ee565b6101408701519294509250506001600160a01b03808a169116036134705760408082015190516303c9790560e11b81523391630792f20a916134229189918790600401615173565b6000604051808303816000875af1158015613441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261346991908101906150e4565b9250613474565b8492505b505095945050505050565b602081015160ff1660031415806134ad5750816001600160a01b03168161014001516001600160a01b031614155b156135925760608101516040808301519051633acd4df360e21b81526001600160a01b039283166004820152602481019190915260009184169063eb3537cc90604401606060405180830381865afa15801561350d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135319190614b6b565b5050905060008112156135905760405162461bcd60e51b815260206004820152602160248201527f4346413a206e6f7420656e6f75676820617661696c61626c652062616c616e636044820152606560f81b60648201526084016105ec565b505b5050565b60006135a68685602001516117e8565b91505060006135b88460400151611f4b565b905060006135c98360400151611f4b565b905060606000806135da848b615030565b90506000806135e88d6115fe565b915091506135f88c878484611fb9565b93505050600081126136e3576000846136118388614c91565b61361b9190615071565b905060018361362b57600161362e565b60005b6040805160ff9384166020820152929091169082015260600160405160208183030381529060405293508b6001600160a01b0316631863e8098b60000151868b878f6020015161367d886140a9565b61368989600019614c91565b6040518863ffffffff1660e01b81526004016136ab97969594939291906151b4565b600060405180830381600087803b1580156136c557600080fd5b505af11580156136d9573d6000803e3d6000fd5b5050505050613795565b6040805160016020820152600291810191909152859060600160405160208183030381529060405293508b6001600160a01b0316631863e8098b60000151868b60008f60200151613733886140a9565b61373f8a600019614c91565b6040518863ffffffff1660e01b815260040161376197969594939291906151b4565b600060405180830381600087803b15801561377b57600080fd5b505af115801561378f573d6000803e3d6000fd5b50505050505b5050505050505050505050565b600082600b0b6000036137b757506000611193565b60016001605f1b038211156137ce576137ce615119565b61381382604051806040016040528060158152602001744346413a206465706f736974206f766572666c6f7760581b81525085600b0b61436a9092919063ffffffff16565b600b0b90506108c0816140fb565b600081831161383057816108c0565b5090919050565b6020820151604051633e7d48bd60e21b81526001600160a01b03909116600482015260609060009081908190339063f9f522f490602401606060405180830381865afa15801561388b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138af9190615201565b919450925090508280156138c1575081155b156139e55760006138d28688614402565b90508660c0015182166000036139d75760006138f18860c00151614480565b88516040808b015160608c01518251600081526020810190935261391d9392309291906044810161523d565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352918a015160c08b01519251633a020f0160e11b815291935033926374041e029261398c9291869164100000000091909114908890600401615282565b6000604051808303816000875af11580156139ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526139d391908101906150e4565b9550505b6139e2866000614517565b50505b50505092915050565b6000806139f96145f6565b6000806000613a07896115fe565b5090506000336001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a6e9190614ba4565b60405163407b865d60e11b81529091506001600160a01b038216906380f70cba90613ac19033908e907feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc490600401614c2e565b602060405180830381865afa158015613ade573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b029190614bc1565b9250613b128960800151836137a2565b95505050613b238660600151611f4b565b613b308760400151611f4b565b613b3986611f4b565b613b439190614c52565b613b4d9190615030565b9450613b6085612f138860400151611f4b565b91508082108015613b78575060008760800151600b0b135b15613bba57613b8a8660600151611f4b565b613b978760400151611f4b565b613ba083611f4b565b613baa9190614c52565b613bb49190615030565b94508091505b6001600160a01b03891615801590613be45750876001600160a01b0316896001600160a01b031614155b15613bee57600093505b604051806080016040528060008960800151600b0b13613c0f576000613c11565b8b5b81526020018860800151600b0b815260200183815260200187606001518152509250876001600160a01b031663a1b2bf8b8860000151613c508661412f565b6040518363ffffffff1660e01b8152600401613c6d929190614c15565b600060405180830381600087803b158015613c8757600080fd5b505af1158015613c9b573d6000803e3d6000fd5b505060408051808201909152600080825260208201529250613cbb915050565b613d1b888860200151613d128a60800151604051806040016040528060168152602001754346413a20666c6f7772617465206f766572666c6f7760501b8152508b60200151600b0b61453f9092919063ffffffff16565b8860008f6141a0565b600b90810b82526040808901516020808a0151835180850190945260168452754346413a20666c6f7772617465206f766572666c6f7760501b9184019190915260808b0151613d7e948d94613d75939290910b919061453f565b6000808f6141a0565b600b0b60208083018290526040808a0151918a015160808b0151855160a08d015193516001600160a01b0395861696938616958f16947f57269d2ebcccecdcc0d9d2c0a0b80ead95f344e28ec20f50f709811f209d4e0e94613de49493929091906152cb565b60405180910390a486606001516001600160a01b03167f71e0c98e270fc3084227b473f176924d5303ece8c639e679998a2d7dc8e70f7483604051613e2b91815260200190565b60405180910390a25050955095509592505050565b613e48614621565b6020840151604051633e7d48bd60e21b81526001600160a01b03909116600482015260609060009081908190339063f9f522f490602401606060405180830381865afa158015613e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ec09190615201565b88965091945092509050828015613ed5575081155b1561409e57613ee48489614402565b93508760c00151811660000361408c576000613f038960c00151614480565b89516040808c015160608d015182516000815260208101909352613f319392309291908e9060448101615303565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352918b015160c08c0151925163079b42a160e21b81529193503392631e6d0a8492613fa09291869164200000000091909114908b90600401615282565b6000604051808303816000875af1158015613fbf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613fe791908101906150e4565b604051631fb6491d60e11b81529095503390633f6c923a9061400d908890600401614837565b600060405180830381865afa15801561402a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526140529190810190614f13565b955061408460006132476140698c60800151611f4b565b61324c6140798b60e00151611f4b565b8b6101000151614346565b610100870152505b61409b86866101000151614517565b93505b505050935093915050565b600080821215611fb55760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f73697469766560448201526064016105ec565b60008063ffffffff8316614110576000614113565b60015b60ff16905060206141268285831c61535c565b901b9392505050565b6040805160018082528183019092526060916020808301908036833701905050905060208260600151901c604060208460400151901c901b608084602001516bffffffffffffffffffffffff16901b60e08560000151901b17171760001b8160008151811061299957612999614e21565b6000806141ad88886117e8565b91505060008160200151600b0b6141cd836000015186612ec9919061509f565b6141d79190614c91565b905080156142425760405163cf97256d60e01b81526001600160a01b038981166004830152602482018390528a169063cf97256d90604401600060405180830381600087803b15801561422957600080fd5b505af115801561423d573d6000803e3d6000fd5b505050505b61428c87604051806040016040528060168152602001754346413a20666c6f7772617465206f766572666c6f7760501b8152508460200151600b0b61459b9092919063ffffffff16565b600b0b602083015283825260408201516142ab908790612f1390611f4b565b604083015260608201516142c4908690612f1390611f4b565b60608301526001600160a01b03891663090c415e8960006142e48661412f565b6040518463ffffffff1660e01b815260040161430293929190615374565b600060405180830381600087803b15801561431c57600080fd5b505af1158015614330573d6000803e3d6000fd5b5050506020909201519998505050505050505050565b600081831361383057816108c0565b600081831361436457826108c0565b50919050565b600083600b0b60000361437f575060006108c0565b83600b0b6000191480156143a35750600b83900b6b7fffffffffffffffffffffff19145b1582906143c35760405162461bcd60e51b81526004016105ec9190614837565b50838302600b84900b6143d6868361539b565b600b0b1483906143f95760405162461bcd60e51b81526004016105ec9190614837565b50949350505050565b6020810151608082015160a08301518351604051630768fabb60e41b8152606094339463768fabb094614439948a946004016153de565b6000604051808303816000875af1158015614458573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108c091908101906150e4565b6000640100000000820361449c57506330d9c91560e01b919050565b64040000000082036144b65750630221347d60e61b919050565b64100000000082036144d05750635f9e7d7760e01b919050565b64020000000082036144ea575063d86ed3e560e01b919050565b6408000000008203614504575063230dbd2960e01b919050565b506353c11f9960e01b919050565b919050565b604051634c4d861f60e11b8152606090339063989b0c3e906144399086908690600401615423565b6000828403600b84900b821380159061455e575084600b0b81600b0b13155b8061457c5750600084600b0b12801561457c575084600b0b81600b0b135b83906143f95760405162461bcd60e51b81526004016105ec9190614837565b6000838301600b84900b82138015906145ba575084600b0b81600b0b12155b8061457c5750600084600b0b12801561457c575084600b0b81600b0b1283906143f95760405162461bcd60e51b81526004016105ec9190614837565b6040518060800160405280600081526020016000600b0b815260200160008152602001600081525090565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6040518060600160405280606081526020016146966145f6565b81526020016146a3614621565b905290565b6001600160a01b03811681146107ed57600080fd5b6000806000606084860312156146d257600080fd5b83356146dd816146a8565b925060208401356146ed816146a8565b915060408401356146fd816146a8565b809150509250925092565b6000806040838503121561471b57600080fd5b8235614726816146a8565b946020939093013593505050565b60008083601f84011261474657600080fd5b50813567ffffffffffffffff81111561475e57600080fd5b6020830191508360208285010111156115f757600080fd5b6000806000806060858703121561478c57600080fd5b8435614797816146a8565b935060208501356147a7816146a8565b9250604085013567ffffffffffffffff8111156147c357600080fd5b6147cf87828801614734565b95989497509550505050565b60005b838110156147f65781810151838201526020016147de565b83811115614805576000848401525b50505050565b600081518084526148238160208601602086016147db565b601f01601f19169290920160200192915050565b6020815260006108c0602083018461480b565b6000806040838503121561485d57600080fd5b8235614868816146a8565b91506020830135614878816146a8565b809150509250929050565b8035600b81900b811461451257600080fd5b60008060008060008060a087890312156148ae57600080fd5b86356148b9816146a8565b955060208701356148c9816146a8565b945060408701356148d9816146a8565b93506148e760608801614883565b9250608087013567ffffffffffffffff81111561490357600080fd5b61490f89828a01614734565b979a9699509497509295939492505050565b60006020828403121561493357600080fd5b81356108c0816146a8565b60008060006060848603121561495357600080fd5b833561495e816146a8565b9250602084013561496e816146a8565b929592945050506040919091013590565b60008060008060006080868803121561499757600080fd5b85356149a2816146a8565b945060208601356149b2816146a8565b935060408601356149c2816146a8565b9250606086013567ffffffffffffffff8111156149de57600080fd5b6149ea88828901614734565b969995985093965092949392505050565b600080600080600060808688031215614a1357600080fd5b8535614a1e816146a8565b94506020860135614a2e816146a8565b93506149c260408701614883565b60ff811681146107ed57600080fd5b60008060008060008060a08789031215614a6457600080fd5b8635614a6f816146a8565b95506020870135614a7f816146a8565b945060408701356148d981614a3c565b60008060408385031215614aa257600080fd5b8235614aad816146a8565b9150614abb60208401614883565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600081600b0b83600b0b600081128160016001605f1b031901831281151615614b0557614b05614ac4565b8160016001605f1b03018313811615614b2057614b20614ac4565b5090039392505050565b60208082526021908201527f4346413a20455f4558434545445f464c4f575f524154455f414c4c4f57414e436040820152604560f81b606082015260800190565b600080600060608486031215614b8057600080fd5b8351925060208401519150604084015190509250925092565b8051614512816146a8565b600060208284031215614bb657600080fd5b81516108c0816146a8565b600060208284031215614bd357600080fd5b5051919050565b600081518084526020808501945080840160005b83811015614c0a57815187529582019590820190600101614bee565b509495945050505050565b8281526040602082015260006104c96040830184614bda565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008083128015600160ff1b850184121615614c7057614c70614ac4565b6001600160ff1b0384018313811615614c8b57614c8b614ac4565b50500390565b60006001600160ff1b0381841382841380821686840486111615614cb757614cb7614ac4565b600160ff1b6000871282811687830589121615614cd657614cd6614ac4565b60008712925087820587128484161615614cf257614cf2614ac4565b87850587128184161615614d0857614d08614ac4565b505050929093029392505050565b634e487b7160e01b600052604160045260246000fd5b604051610160810167ffffffffffffffff81118282101715614d5057614d50614d16565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715614d7f57614d7f614d16565b604052919050565b60006020808385031215614d9a57600080fd5b825167ffffffffffffffff80821115614db257600080fd5b818501915085601f830112614dc657600080fd5b815181811115614dd857614dd8614d16565b8060051b9150614de9848301614d56565b8181529183018401918481019088841115614e0357600080fd5b938501935b83851015610ce857845182529385019390850190614e08565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600082614e5c57614e5c614e37565b500490565b8051801515811461451257600080fd5b600060208284031215614e8357600080fd5b6108c082614e61565b805161451281614a3c565b80516001600160e01b03198116811461451257600080fd5b600082601f830112614ec057600080fd5b815167ffffffffffffffff811115614eda57614eda614d16565b614eed601f8201601f1916602001614d56565b818152846020838601011115614f0257600080fd5b6104c98260208301602087016147db565b600060208284031215614f2557600080fd5b815167ffffffffffffffff80821115614f3d57600080fd5b908301906101608286031215614f5257600080fd5b614f5a614d2c565b614f6383614e8c565b8152614f7160208401614e8c565b602082015260408301516040820152614f8c60608401614b99565b6060820152614f9d60808401614e97565b608082015260a083015182811115614fb457600080fd5b614fc087828601614eaf565b60a08301525060c083015160c082015260e083015160e0820152610100915081830151828201526101209150614ff7828401614b99565b82820152610140915061500b828401614b99565b91810191909152949350505050565b634e487b7160e01b600052602160045260246000fd5b600080821280156001600160ff1b038490038513161561505257615052614ac4565b600160ff1b839003841281161561506b5761506b614ac4565b50500190565b60008261508057615080614e37565b600160ff1b82146000198414161561509a5761509a614ac4565b500590565b6000828210156150b1576150b1614ac4565b500390565b6060815260006150c9606083018661480b565b6001600160a01b039490941660208301525060400152919050565b6000602082840312156150f657600080fd5b815167ffffffffffffffff81111561510d57600080fd5b6104c984828501614eaf565b634e487b7160e01b600052600160045260246000fd5b600081600019048311821515161561514957615149614ac4565b500290565b600060ff821660ff84168060ff0382111561516b5761516b614ac4565b019392505050565b606081526000615186606083018661480b565b60208301949094525060400152919050565b6000600160ff1b82016151ad576151ad614ac4565b5060000390565b87815260e0602082015260006151cd60e083018961480b565b6001600160a01b03978816604084015295151560608301525092909416608083015260a082015260c0019190915292915050565b60008060006060848603121561521657600080fd5b61521f84614e61565b925061522d60208501614e61565b9150604084015190509250925092565b6001600160a01b038681168252851660208201526040810184905260a0606082018190526000906152709083018561480b565b8281036080840152610ce8818561480b565b6001600160a01b03851681526080602082018190526000906152a69083018661480b565b841515604084015282810360608401526152c0818561480b565b979650505050505050565b84600b0b815283600b0b602082015282600b0b60408201526080606082015260006152f9608083018461480b565b9695505050505050565b6001600160a01b038781168252861660208201526040810185905260c0606082018190526000906153369083018661480b565b8281036080840152615348818661480b565b905082810360a084015261136c818561480b565b6000821982111561536f5761536f614ac4565b500190565b60018060a01b03841681528260208201526060604082015260006104e26060830184614bda565b600081600b0b83600b0b806153b2576153b2614e37565b6b7fffffffffffffffffffffff198214600019821416156153d5576153d5614ac4565b90059392505050565b60a0815260006153f160a083018861480b565b6001600160a01b0396871660208401526040830195909552506060810192909252909216608090920191909152919050565b604081526000615436604083018561480b565b9050826020830152939250505056fea2646970667358221220788957050e22b9ebe6af17faa7b47a66569277648801214aaefc6706dc90c9ac64736f6c634300080d003360a06040523480156200001157600080fd5b50604051620055d0380380620055d0833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b60805161553c62000094600039600061117c015261553c6000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80637730599e116100ad578063acf4a6c211610071578063acf4a6c21461030d578063b6dacdb814610320578063b96731c214610342578063cd7245c514610355578063d787840a146103ad57600080fd5b80637730599e146102635780637fbc763914610289578063899baaec1461029c5780639b2e48bc146102cc578063acafa1b8146102fa57600080fd5b806346951954116100f457806346951954146101d957806350d75d25146101ee57806352d1902d146101f65780635b5340511461020c5780636041ae961461025057600080fd5b8063232d2b581461012657806323fc23f31461014f5780632e5e74c6146101935780633fd4176a146101a6575b600080fd5b610139610134366004614595565b6103c0565b604051610146919061467c565b60405180910390f35b61016261015d36600461468f565b610b0e565b6040805194151585526001600160801b03938416602086015291831691840191909152166060820152608001610146565b6101396101a13660046146da565b610b79565b6101c173__SlotsBitmapLibrary____________________81565b6040516001600160a01b039091168152602001610146565b6101ec6101e736600461472e565b611171565b005b6101c16111f5565b6101fe611224565b604051908152602001610146565b61021f61021a36600461474b565b611288565b6040516101469493929190931515845291151560208401526001600160801b03166040830152606082015260800190565b61013961025e3660046147a7565b61135e565b7f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a6746101fe565b610139610297366004614822565b61180d565b6102af6102aa366004614863565b61191d565b604080519283526001600160801b03909116602083015201610146565b6102df6102da3660046148b4565b6119f1565b60408051938452602084019290925290820152606001610146565b6101396103083660046146da565b611bfc565b61013961031b3660046147a7565b612024565b61033361032e3660046148f5565b612601565b60405161014693929190614972565b610139610350366004614a0f565b612856565b610368610363366004614a64565b61294a565b604080516001600160a01b03909616865263ffffffff9094166020860152911515928401929092526001600160801b039091166060830152608082015260a001610146565b6101396103bb366004614a90565b612a6c565b60606001600160a01b0385166103f15760405162461bcd60e51b81526004016103e890614af4565b60405180910390fd5b6103f96143ed565b61040161444b565b60606000806104468c89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b90508060a00151925080606001519150506104658b828b8d6000612e17565b60808901521515602080890191909152606088019190915260408088018390529287528251908101909252600082526104a1918d918c91612f29565b925086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050602086015191965050156105055764040000000060c08401526104fb8386612f57565b60a0850152610520565b64010000000060c084015261051a8386612f57565b60a08501525b8360200151801561053d575060808401515163ffffffff90811614155b156106185761058c8460800151608001516001600160801b0316896001600160801b03168660600151602001516001600160801b031661057d9190614b37565b6105879190614b4f565b61310e565b6060850180516001600160801b03909216602090920191909152845190516001600160a01b038d169163a1b2bf8b916105c49061317b565b6040518363ffffffff1660e01b81526004016105e1929190614b96565b600060405180830381600087803b1580156105fb57600080fd5b505af115801561060f573d6000803e3d6000fd5b5050505061082e565b8360200151156106955761065d8460800151608001516001600160801b0316896001600160801b03168660600151604001516001600160801b031661057d9190614b37565b6060850180516001600160801b03909216604090920191909152845190516001600160a01b038d169163a1b2bf8b916105c49061317b565b6040518060a0016040528063ffffffff80168152602001826001600160a01b031681526020018b63ffffffff1681526020018560600151600001516001600160801b03168152602001896001600160801b031681525084608001819052508a6001600160a01b03166312a6a3f885604001516107148760800151613219565b6040518363ffffffff1660e01b8152600401610731929190614b96565b600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b5050604080518082018252600f81526e4944413a20455f4f564552464c4f5760881b60208201526060880151909101516107a693506001600160801b031691508a906132c0565b6060850180516001600160801b03909216604090920191909152845190516001600160a01b038d169163a1b2bf8b916107de9061317b565b6040518363ffffffff1660e01b81526004016107fb929190614b96565b600060405180830381600087803b15801561081557600080fd5b505af1158015610829573d6000803e3d6000fd5b505050505b60008460800151608001516001600160801b031685608001516060015186606001516000015161085e9190614baf565b6001600160801b03166108719190614bd7565b905063ffffffff801685608001516000015163ffffffff160361090a576108a18c8361089c84614c5c565b6132fc565b6001600160a01b038c1663cf97256d836108ba84614c5c565b6040518363ffffffff1660e01b81526004016108d7929190614c78565b600060405180830381600087803b1580156108f157600080fd5b505af1158015610905573d6000803e3d6000fd5b505050505b60405163cf97256d60e01b81526001600160a01b038d169063cf97256d90610938908d908590600401614c78565b600060405180830381600087803b15801561095257600080fd5b505af1158015610966573d6000803e3d6000fd5b50505050846020015115610a0c5760608086015151608080880180516001600160801b039384169401939093528251918c16910152604086015190516001600160a01b038e169163a1b2bf8b916109bc90613219565b6040518363ffffffff1660e01b81526004016109d9929190614b96565b600060405180830381600087803b1580156109f357600080fd5b505af1158015610a07573d6000803e3d6000fd5b505050505b846020015115610a395764080000000060c085015260a0850151610a329085908861344a565b5050610a58565b64020000000060c085015260a0850151610a559085908861344a565b50505b8a63ffffffff16826001600160a01b03168d6001600160a01b03167f0115987243fd19d615b5ea62a80372a06a2b37fec378b148ee7a507c5c4c0a398d8d88604051610aa693929190614c91565b60405180910390a4896001600160a01b03168c6001600160a01b03167fe0707ac7efb8b59c22189af8d004ed17dc9e4379e71b9066119b62c182524977848e8d88604051610af79493929190614cc4565b60405180910390a350505050509695505050505050565b600080600080610b37604080516060810182526000808252602082018190529181019190915290565b6000610b4388886136bd565b9050610b4f8982613724565b90965091508515610b6e57815160208301516040840151919650945092505b505093509350935093565b6060610b836143ed565b610b8b61444b565b600060606000610bd18c89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b606081015160a0909101519093509150506001600160a01b038816610c085760405162461bcd60e51b81526004016103e890614af4565b896001600160a01b0316826001600160a01b031614610c5e5760405162461bcd60e51b81526020600482015260126024820152711251104e881157d393d517d0531313d5d15160721b60448201526064016103e8565b610c6c8b8b8a8c6001612e17565b6080890152506060870152604080870182905291865281516020810190925260008252610c9c918d918b91612f29565b925086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505064100000000060c087015250909550610ced90508386612f57565b60a08501526080808501519081015160609182015191860151516000926001600160801b0390921691610d1f91614baf565b6001600160801b0316610d329190614bd7565b60808601515190915063ffffffff90811614610db857610d9d8560800151608001516040518060400160405280600f81526020016e4944413a20455f4f564552464c4f5760881b8152508760600151602001516001600160801b03166138389092919063ffffffff16565b60608601516001600160801b03909116602090910152610e24565b610e0d8560800151608001516040518060400160405280600f81526020016e4944413a20455f4f564552464c4f5760881b8152508760600151604001516001600160801b03166138389092919063ffffffff16565b60608601516001600160801b039091166040909101525b8b6001600160a01b031663a1b2bf8b8660000151610e45886060015161317b565b6040518363ffffffff1660e01b8152600401610e62929190614b96565b600060405180830381600087803b158015610e7c57600080fd5b505af1158015610e90573d6000803e3d6000fd5b5050505060808501515163ffffffff90811614610eba57610eba8c8a876080015160000151613885565b60808501515163ffffffff1663fffffffe1901610f4857610edf8c8c61089c84614c5c565b6001600160a01b038c1663cf97256d8c610ef884614c5c565b6040518363ffffffff1660e01b8152600401610f15929190614c78565b600060405180830381600087803b158015610f2f57600080fd5b505af1158015610f43573d6000803e3d6000fd5b505050505b6040858101519051632704839760e01b81526004810191909152600260248201526001600160a01b038d1690632704839790604401600060405180830381600087803b158015610f9757600080fd5b505af1158015610fab573d6000803e3d6000fd5b505060405163cf97256d60e01b81526001600160a01b038f16925063cf97256d9150610fdd908c908590600401614c78565b600060405180830381600087803b158015610ff757600080fd5b505af115801561100b573d6000803e3d6000fd5b505064200000000060c0870152505060a085015161102b9085908861344a565b50508963ffffffff168b6001600160a01b03168d6001600160a01b03167fe1f8e9cd8061e5b251769965bda6ca9ef1674bc6541fb9131039fa53f024d1428c86604051611079929190614d0d565b60405180910390a4886001600160a01b03168c6001600160a01b03167f9e02127550b99adc8cc6ee332a36f31338facdbc396cebefce9a047247cd04558d8d866040516110c893929190614d31565b60405180910390a38963ffffffff168b6001600160a01b03168d6001600160a01b03167f0115987243fd19d615b5ea62a80372a06a2b37fec378b148ee7a507c5c4c0a398c60008760405161111f93929190614c91565b60405180910390a4886001600160a01b03168c6001600160a01b03167fe0707ac7efb8b59c22189af8d004ed17dc9e4379e71b9066119b62c1825249778d8d600087604051610af79493929190614cc4565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111e95760405162461bcd60e51b815260206004820152601960248201527f6f6e6c7920686f73742063616e2075706461746520636f64650000000000000060448201526064016103e8565b6111f281613910565b50565b600061121f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000306001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611264573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121f9190614d61565b6000806000806000806112b4604080516060810182526000808252602082018190529181019190915290565b6112bc614486565b6112ca8c8c8b8d6000612e17565b909b5092965090945092509050876112f357600080600080975097509750975050505050611353565b8051608082015163ffffffff9182169091141597509550866113495780608001516001600160801b0316816060015183600001516113319190614baf565b6001600160801b03166113449190614d7a565b61134c565b60005b9450505050505b945094509450949050565b60606113686143ed565b61137061444b565b6000606060006113b68b89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b9050806060015192508060a001519150506113d58a8a848b6001612e17565b6080890181905260608901929092525060408701919091529085525163ffffffff1663fffffffe190161144a5760405162461bcd60e51b815260206004820152601860248201527f4944413a20455f535542535f4e4f545f415050524f564544000000000000000060448201526064016103e8565b6114698a8a866040015160405180602001604052806000815250612f29565b925086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505064100000000060c0870152509095506114ba90508386612f57565b60a08501526080808501519081015160609182015191860151516000926001600160801b03909216916114ec91614baf565b6001600160801b03166114ff9190614bd7565b90506115568560800151608001516040518060400160405280600f81526020016e4944413a20455f4f564552464c4f5760881b8152508760600151602001516001600160801b03166138389092919063ffffffff16565b6060860180516001600160801b039283166020918201526080808901510151604080518082018252600f81526e4944413a20455f4f564552464c4f5760881b938101939093529251909201516115ae931691906132c0565b6060860180516001600160801b03909216604090920191909152855190516001600160a01b038d169163a1b2bf8b916115e69061317b565b6040518363ffffffff1660e01b8152600401611603929190614b96565b600060405180830381600087803b15801561161d57600080fd5b505af1158015611631573d6000803e3d6000fd5b505050506116488b84876080015160000151613885565b606080860151516080870180516001600160801b039092169190920152805163ffffffff9052604086015190516001600160a01b038d169163a1b2bf8b9161168f90613219565b6040518363ffffffff1660e01b81526004016116ac929190614b96565b600060405180830381600087803b1580156116c657600080fd5b505af11580156116da573d6000803e3d6000fd5b505060405163cf97256d60e01b81526001600160a01b038e16925063cf97256d915061170c9086908590600401614c78565b600060405180830381600087803b15801561172657600080fd5b505af115801561173a573d6000803e3d6000fd5b505064200000000060c0870152505060a085015161175a9085908861344a565b50508863ffffffff168a6001600160a01b03168c6001600160a01b03167fe1f8e9cd8061e5b251769965bda6ca9ef1674bc6541fb9131039fa53f024d14286866040516117a8929190614d0d565b60405180910390a4826001600160a01b03168b6001600160a01b03167f9e02127550b99adc8cc6ee332a36f31338facdbc396cebefce9a047247cd04558c8c866040516117f793929190614d31565b60405180910390a3505050505095945050505050565b606060006118518785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b60608101519091506000806118678a848b613b1e565b9150915080600001516001600160801b0316886001600160801b031610156118c55760405162461bcd60e51b81526020600482015260116024820152704944413a20455f494e4445585f47524f5760781b60448201526064016103e8565b6118d88a848b85858d8a60a00151613b7c565b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929d9c50505050505050505050505050565b600080600061192c86866136bd565b905060008061193b8984613724565b915091508161195c5760405162461bcd60e51b81526004016103e890614d99565b6000816040015182602001516119729190614dc2565b6001600160801b03169050600061198c610587838a614ded565b60408051808201909152600f81526e4944413a20455f4f564552464c4f5760881b602082015284519192506119cc916001600160801b03169083906132c0565b95506119e1826001600160801b038316614d7a565b9650505050505094509492505050565b6000806000606080611a038888613dcf565b909250905060005b81518163ffffffff161015611be0576000611a24614486565b600080868563ffffffff1681518110611a3f57611a3f614e0f565b60200260200101519050611a728d878763ffffffff1681518110611a6557611a65614e0f565b6020026020010151613ec2565b909450925083611a8457611a84614e25565b8063ffffffff16836000015163ffffffff1614611aa357611aa3614e25565b6001600160a01b038d16634b61cc33308e611ac863ffffffff8616600160801b614b37565b60016040518563ffffffff1660e01b8152600401611ae99493929190614e3b565b600060405180830381865afa158015611b06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b2e9190810190614f61565b600081518110611b4057611b40614e0f565b6020026020010151915050611b6e604080516060810182526000808252602082018190529181019190915290565b611b788d83613724565b909450905083611b8a57611b8a614e25565b82608001516001600160801b031683606001518260000151611bac9190614baf565b6001600160801b0316611bbf9190614bd7565b611bc9908b614f95565b99505050505080611bd990614fd6565b9050611a0b565b50611beb8888613fde565b935060009250505093509350939050565b6060611c3e8784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b506001600160a01b038416611c655760405162461bcd60e51b81526004016103e890614af4565b611c6d6143ed565b611c7561444b565b611c838989888a6001612e17565b6080870181905260608701929092525060408501919091529083525163ffffffff90811614611ceb5760405162461bcd60e51b81526020600482015260146024820152731251104e881157d4d55094d7d054141493d5915160621b60448201526064016103e8565b60008260800151608001516001600160801b0316836080015160600151846060015160000151611d1b9190614baf565b6001600160801b0316611d2e9190614d7a565b9050611d4f8a8a856040015160405180602001604052806000815250612f29565b915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505082159150611fdd90505764040000000060c0830152611da78285612f57565b60a0840152611dba8a8a61089c84614c5c565b6001600160a01b038a1663cf97256d8a611dd384614c5c565b6040518363ffffffff1660e01b8152600401611df0929190614c78565b600060405180830381600087803b158015611e0a57600080fd5b505af1158015611e1e573d6000803e3d6000fd5b50505050606083810151516080850180516001600160801b039092169190920152604084015190516001600160a01b038c169163a1b2bf8b91611e6090613219565b6040518363ffffffff1660e01b8152600401611e7d929190614b96565b600060405180830381600087803b158015611e9757600080fd5b505af1158015611eab573d6000803e3d6000fd5b505060405163cf97256d60e01b81526001600160a01b038d16925063cf97256d9150611edd908a908590600401614c78565b600060405180830381600087803b158015611ef757600080fd5b505af1158015611f0b573d6000803e3d6000fd5b505050508763ffffffff16896001600160a01b03168b6001600160a01b03167f467eccd248ef31c8bcef16d94856855799a8783aeef10f3759e43614059a6bb18a85604051611f5b929190614c78565b60405180910390a4604080516001600160a01b038b8116825263ffffffff8b166020830152918101839052818916918c16907f48a3d91d4a07e4982b081260e24f922bd33bb965882772d6de19c922c3eabdea9060600160405180910390a364080000000060c083015260a0830151611fd69083908661344a565b5050612017565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505050505b5050509695505050505050565b606061202e6143ed565b61203661444b565b60006060600061207c8b89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b9050806060015192508060a0015191505061209b8a8a848b6000612e17565b60808901521580156020890152606088019190915260408701919091529085526121115760808401515163ffffffff908116146121115760405162461bcd60e51b81526020600482015260146024820152731251104e881157d4d55094d7d054141493d5915160621b60448201526064016103e8565b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040808a015181516020810190925291815294995061216a948f94508e9350909150612f29565b925083602001516122915764010000000060c084015261218a8386612f57565b60a08086019190915260408051918201815260008083526001600160a01b038c16602084015263ffffffff8b1691830191909152606080870151516001600160801b03169083015260808083019190915285015283516121ed908b908490614087565b60808501805163ffffffff909216909152604085015190516001600160a01b038c16916312a6a3f89161221f90613219565b6040518363ffffffff1660e01b815260040161223c929190614b96565b600060405180830381600087803b15801561225657600080fd5b505af115801561226a573d6000803e3d6000fd5b505064020000000060c0860152505060a084015161228a9084908761344a565b5050612551565b64040000000060c08401526122a68386612f57565b60a08501526080808501519081015160609182015191860151516000926001600160801b03909216916122d891614baf565b6001600160801b03166122eb9190614bd7565b9050846080015160800151856060015160200181815161230b9190614dc2565b6001600160801b0316905250608080860151015160608601516040018051612334908390614baf565b6001600160801b0316905250845160608601516001600160a01b038d169163a1b2bf8b916123619061317b565b6040518363ffffffff1660e01b815260040161237e929190614b96565b600060405180830381600087803b15801561239857600080fd5b505af11580156123ac573d6000803e3d6000fd5b505050506123bf8b8b8361089c90614c5c565b6001600160a01b038b1663cf97256d8b6123d884614c5c565b6040518363ffffffff1660e01b81526004016123f5929190614c78565b600060405180830381600087803b15801561240f57600080fd5b505af1158015612423573d6000803e3d6000fd5b505060405163cf97256d60e01b81526001600160a01b038e16925063cf97256d91506124559086908590600401614c78565b600060405180830381600087803b15801561246f57600080fd5b505af1158015612483573d6000803e3d6000fd5b5050506060808701515160808801516001600160801b039091169101525084516124b0908c908590614087565b60808601805163ffffffff909216909152604086015190516001600160a01b038d169163a1b2bf8b916124e290613219565b6040518363ffffffff1660e01b81526004016124ff929190614b96565b600060405180830381600087803b15801561251957600080fd5b505af115801561252d573d6000803e3d6000fd5b505064080000000060c0870152505060a085015161254d9085908861344a565b5050505b8763ffffffff16896001600160a01b03168b6001600160a01b03167f492d2641617cfaf24ac7328f85bc5bdf5113537d78dc7671afa4f49a73f053c2858560405161259d929190614d0d565b60405180910390a4816001600160a01b03168a6001600160a01b03167fc0b8396b655615cdb85fe462a9a1792480816f909cd46d9517a940b386dfbf6b8b8b856040516125ec93929190614d31565b60405180910390a35050505095945050505050565b60608060608060606126138787613dcf565b90925090506000612622614486565b82516001600160401b0381111561263b5761263b614e64565b604051908082528060200260200182016040528015612664578160200160208202803683370190505b50965082516001600160401b0381111561268057612680614e64565b6040519080825280602002602001820160405280156126a9578160200160208202803683370190505b50955082516001600160401b038111156126c5576126c5614e64565b6040519080825280602002602001820160405280156126ee578160200160208202803683370190505b50945060005b83518163ffffffff16101561284a576000858263ffffffff168151811061271d5761271d614e0f565b602002602001015190506000858363ffffffff168151811061274157612741614e0f565b602002602001015190506127558c82613ec2565b90955093508461276757612767614e25565b8163ffffffff16846000015163ffffffff161461278657612786614e25565b83602001518a8463ffffffff16815181106127a3576127a3614e0f565b60200260200101906001600160a01b031690816001600160a01b0316815250508360400151898463ffffffff16815181106127e0576127e0614e0f565b602002602001019063ffffffff16908163ffffffff16815250508360800151888463ffffffff168151811061281757612817614e0f565b60200260200101906001600160801b031690816001600160801b03168152505050508061284390614fd6565b90506126f4565b50505050509250925092565b6060600061289a8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b60608101519091506000806128b08a848b613b1e565b9150915060006128e0826040015183602001516128cd9190614dc2565b610587906001600160801b03168b614ded565b90506129048b858c86868688600001516128fa9190614dc2565b8b60a00151613b7c565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929e9d5050505050505050505050505050565b6000806000806000806000612978604080516060810182526000808252602082018190529181019190915290565b612980614486565b61298a8b8b613ec2565b9094509050836129cd5760405162461bcd60e51b815260206004820152600e60248201526d4944413a20455f4e4f5f5355425360901b60448201526064016103e8565b80602001519850806040015197506129e589896136bd565b92506129f18b84613724565b909450915083612a0357612a03614e25565b8051608082015163ffffffff918216909114159750955086612a595780608001516001600160801b031681606001518360000151612a419190614baf565b6001600160801b0316612a549190614d7a565b612a5c565b60005b9450505050509295509295909350565b60606000612ab08685858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b60608101519091506000612ac482886136bd565b9050612ad0888261412e565b15612b135760405162461bcd60e51b81526020600482015260136024820152724944413a20455f494e4445585f45584953545360681b60448201526064016103e8565b876001600160a01b03166312a6a3f882612b64604051806060016040528060006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b031681525061317b565b6040518363ffffffff1660e01b8152600401612b81929190614b96565b600060405180830381600087803b158015612b9b57600080fd5b505af1158015612baf573d6000803e3d6000fd5b505050508663ffffffff16826001600160a01b0316896001600160a01b03167f01ab8663165edfb7390d9e5f75d960a66dacf4f01fa9787e3a731c870d0da9218660a00151604051612c01919061467c565b60405180910390a485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929b9a5050505050505050505050565b612c546144b4565b336001600160a01b0316836001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc09190615004565b6001600160a01b031614612d0a5760405162461bcd60e51b81526020600482015260116024820152701d5b985d5d1a1bdc9a5e9959081a1bdcdd607a1b60448201526064016103e8565b604051632fd0a1cd60e21b8152339063bf42873490612d2d90859060040161467c565b602060405180830381865afa158015612d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6e9190615031565b612da85760405162461bcd60e51b815260206004820152600b60248201526a0d2dcecc2d8d2c840c6e8f60ab1b60448201526064016103e8565b604051631fb6491d60e11b81523390633f6c923a90612dcb90859060040161467c565b600060405180830381865afa158015612de8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e1091908101906150d8565b9392505050565b6040805160608101825260008082526020820181905291810182905281906000612e3f614486565b6000612e4b8a896136bd565b9550612e5789876141da565b9450612e638b87613724565b9450905080612e845760405162461bcd60e51b81526004016103e890614d99565b612e8e8b86613ec2565b90935091508615612f1b5782612ed75760405162461bcd60e51b815260206004820152600e60248201526d4944413a20455f4e4f5f5355425360901b60448201526064016103e8565b896001600160a01b031682602001516001600160a01b031614612efc57612efc614e25565b8763ffffffff16826040015163ffffffff1614612f1b57612f1b614e25565b509550955095509550959050565b612f3161444b565b6001600160a01b0394851681529290931660208301526040820152606081019190915290565b6020820151604051633e7d48bd60e21b81526001600160a01b03909116600482015260609060009081908190339063f9f522f490602401606060405180830381865afa158015612fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcf91906151de565b91945092509050828015612fe1575081155b15613105576000612ff2868861421b565b90508660c0015182166000036130f75760006130118860c00151614299565b88516040808b015160608c01518251600081526020810190935261303d9392309291906044810161521a565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352918a015160c08b01519251633a020f0160e11b815291935033926374041e02926130ac929186916410000000009190911490889060040161525f565b6000604051808303816000875af11580156130cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130f391908101906152a8565b9550505b613102866000614330565b50505b50505092915050565b60006001600160801b038211156131775760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016103e8565b5090565b604080516002808252606080830184529260208301908036833701905050905081600001516001600160801b0316600160801b1760001b816000815181106131c5576131c5614e0f565b602002602001018181525050608082604001516001600160801b0316901b82602001516001600160801b03161760001b8160018151811061320857613208614e0f565b602002602001018181525050919050565b6040805160028082526060808301845292602083019080368337019050509050816000015163ffffffff166020836040015163ffffffff16901b606084602001516001600160a01b0316901b171760001b8160008151811061327d5761327d614e0f565b602002602001018181525050608082608001516001600160801b0316901b82606001516001600160801b03161760001b8160018151811061320857613208614e0f565b6000838301826001600160801b0380871690831610156132f35760405162461bcd60e51b81526004016103e8919061467c565b50949350505050565b8060000361330957505050565b604051634b61cc3360e01b81526000906001600160a01b03851690634b61cc3390613344903090879064010000000090600190600401614e3b565b600060405180830381865afa158015613361573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133899190810190614f61565b9050816133b2826000815181106133a2576133a2614e0f565b602002602001015160001c614358565b6133bc9190614f95565b60001b816000815181106133d2576133d2614e0f565b602090810291909101015260405163048620af60e11b81526001600160a01b0385169063090c415e906134129086906401000000009086906004016152dc565b600060405180830381600087803b15801561342c57600080fd5b505af1158015613440573d6000803e3d6000fd5b5050505050505050565b6134526144b4565b6020840151604051633e7d48bd60e21b81526001600160a01b03909116600482015260609060009081908190339063f9f522f490602401606060405180830381865afa1580156134a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ca91906151de565b889650919450925090508280156134df575081155b156136b2576134ee848961421b565b93508760c0015181166000036136a057600061350d8960c00151614299565b89516040808c015160608d01518251600081526020810190935261353b9392309291908e9060448101615303565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352918b015160c08c0151925163079b42a160e21b81529193503392631e6d0a84926135aa9291869164200000000091909114908b9060040161525f565b6000604051808303816000875af11580156135c9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135f191908101906152a8565b604051631fb6491d60e11b81529095503390633f6c923a9061361790889060040161467c565b600060405180830381865afa158015613634573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261365c91908101906150d8565b955061369860006136936136738c60800151614358565b61368e6136838b60e00151614358565b8b61010001516143c2565b6143d8565b6143c2565b610100870152505b6136af86866101000151614330565b93505b505050935093915050565b60405168383ab13634b9b432b960b91b60208201526bffffffffffffffffffffffff19606084901b1660298201526001600160e01b031960e083901b16603d8201526000906041015b60405160208183030381529060405280519060200120905092915050565b60408051606081018252600080825260208201819052918101829052604051636c2d9f2f60e01b815230600482015260248101849052600260448201526000906001600160a01b03861690636c2d9f2f90606401600060405180830381865afa158015613795573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137bd9190810190614f61565b90506000816000815181106137d4576137d4614e0f565b602002602001015160001c90506000826001815181106137f6576137f6614e0f565b602002602001015160001c9050600082119450841561382e576001600160801b03808316855281166020850152608081901c60408501525b5050509250929050565b6000836001600160801b0316836001600160801b03161115829061386f5760405162461bcd60e51b81526004016103e8919061467c565b50600061387c8486614baf565b95945050505050565b604051631528e57f60e31b81526001600160a01b038085166004830152831660248201526000604482015263ffffffff8216606482015273__SlotsBitmapLibrary____________________9063a9472bf89060840160006040518083038186803b1580156138f357600080fd5b505af4158015613907573d6000803e3d6000fd5b50505050505050565b600061393a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036139905760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016103e8565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f29190614d61565b6139fa611224565b14613a535760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016103e8565b6001600160a01b0381163003613aab5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016103e8565b613ad3817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc613afc611224565b604080519182526001600160a01b03841660208301520160405180910390a150565b604080516060810182526000808252602082018190529181018290526000613b4685856136bd565b9250613b528684613724565b9250905080613b735760405162461bcd60e51b81526004016103e890614d99565b50935093915050565b866001600160a01b031663cf97256d8785602001516001600160801b0316866000015186613baa9190614baf565b6001600160801b0316613bbc90614c5c565b613bc69190614bd7565b6040518363ffffffff1660e01b8152600401613be3929190614c78565b600060405180830381600087803b158015613bfd57600080fd5b505af1158015613c11573d6000803e3d6000fd5b50505050613c4b878785604001516001600160801b0316866000015186613c389190614baf565b6001600160801b031661089c9190614bd7565b82516001600160801b03831684526001600160a01b03881663a1b2bf8b86613c728761317b565b6040518363ffffffff1660e01b8152600401613c8f929190614b96565b600060405180830381600087803b158015613ca957600080fd5b505af1158015613cbd573d6000803e3d6000fd5b505050508563ffffffff16876001600160a01b0316896001600160a01b03167f81e37f3d9f16cbf29a62d6a1c21d79b23ef29b54124ec44af43a50fffb9304f3848789604001518a6020015189604051613d1b959493929190615369565b60405180910390a46040516379359f6f60e01b81526001600160a01b0388811660048301528916906379359f6f90602401602060405180830381865afa158015613d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d8d9190615031565b156134405760405162461bcd60e51b81526020600482015260126024820152714944413a20455f4c4f575f42414c414e434560701b60448201526064016103e8565b60608073__SlotsBitmapLibrary____________________6306967a8c85856000600160801b6040518563ffffffff1660e01b8152600401613e149493929190614e3b565b600060405180830381865af4158015613e31573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e5991908101906153a5565b909250905060005b8151811015613eba57613e8d84838381518110613e8057613e80614e0f565b60200260200101516141da565b828281518110613e9f57613e9f614e0f565b6020908102919091010152613eb381615469565b9050613e61565b509250929050565b6000613ecc614486565b604051636c2d9f2f60e01b815230600482015260248101849052600260448201526000906001600160a01b03861690636c2d9f2f90606401600060405180830381865afa158015613f21573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613f499190810190614f61565b9050600081600081518110613f6057613f60614e0f565b602002602001015160001c9050600082600181518110613f8257613f82614e0f565b602002602001015160001c9050600082119450841561382e57606082811c60208087019190915283901c63ffffffff9081166040870152831685526001600160801b03821690850152608081811c908501525050509250929050565b600080836001600160a01b0316634b61cc33308564010000000060016040518563ffffffff1660e01b81526004016140199493929190614e3b565b600060405180830381865afa158015614036573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261405e9190810190614f61565b90508060008151811061407357614073614e0f565b602002602001015160001c91505092915050565b604051630a32470160e41b81526001600160a01b03808516600483015283166024820152600060448201819052600160801b6064830152608482018390529073__SlotsBitmapLibrary____________________9063a32470109060a401602060405180830381865af4158015614102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141269190615482565b949350505050565b604051636c2d9f2f60e01b8152306004820152602481018290526002604482015260009081906001600160a01b03851690636c2d9f2f90606401600060405180830381865afa158015614185573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526141ad9190810190614f61565b90506000816000815181106141c4576141c4614e0f565b6020908102919091010151151595945050505050565b604080516b39bab139b1b934b83a34b7b760a11b6020820152606084811b6bffffffffffffffffffffffff1916602c83015291810183905260009101613706565b6020810151608082015160a08301518351604051630768fabb60e41b8152606094339463768fabb094614252948a9460040161549f565b6000604051808303816000875af1158015614271573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e1091908101906152a8565b600064010000000082036142b557506330d9c91560e01b919050565b64040000000082036142cf5750630221347d60e61b919050565b64100000000082036142e95750635f9e7d7760e01b919050565b6402000000008203614303575063d86ed3e560e01b919050565b640800000000820361431d575063230dbd2960e01b919050565b506353c11f9960e01b919050565b919050565b604051634c4d861f60e11b8152606090339063989b0c3e9061425290869086906004016154e4565b60006001600160ff1b038211156131775760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016103e8565b60008183136143d15781612e10565b5090919050565b60008183136143e75782612e10565b50919050565b6040805160c0810182526000808252602082018190529181019190915260608101614431604080516060810182526000808252602082018190529181019190915290565b815260200161443e614486565b8152602001606081525090565b6040805160e0810182526000808252602082018190529181018290526060808201526080810182905260a0810182905260c081019190915290565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6001600160a01b03811681146111f257600080fd5b63ffffffff811681146111f257600080fd5b80356001600160801b038116811461432b57600080fd5b60008083601f84011261455f57600080fd5b5081356001600160401b0381111561457657600080fd5b60208301915083602082850101111561458e57600080fd5b9250929050565b60008060008060008060a087890312156145ae57600080fd5b86356145b98161450f565b955060208701356145c981614524565b945060408701356145d98161450f565b93506145e760608801614536565b925060808701356001600160401b0381111561460257600080fd5b61460e89828a0161454d565b979a9699509497509295939492505050565b60005b8381101561463b578181015183820152602001614623565b8381111561464a576000848401525b50505050565b60008151808452614668816020860160208601614620565b601f01601f19169290920160200192915050565b602081526000612e106020830184614650565b6000806000606084860312156146a457600080fd5b83356146af8161450f565b925060208401356146bf8161450f565b915060408401356146cf81614524565b809150509250925092565b60008060008060008060a087890312156146f357600080fd5b86356146fe8161450f565b9550602087013561470e8161450f565b9450604087013561471e81614524565b935060608701356145e78161450f565b60006020828403121561474057600080fd5b8135612e108161450f565b6000806000806080858703121561476157600080fd5b843561476c8161450f565b9350602085013561477c8161450f565b9250604085013561478c81614524565b9150606085013561479c8161450f565b939692955090935050565b6000806000806000608086880312156147bf57600080fd5b85356147ca8161450f565b945060208601356147da8161450f565b935060408601356147ea81614524565b925060608601356001600160401b0381111561480557600080fd5b6148118882890161454d565b969995985093965092949392505050565b60008060008060006080868803121561483a57600080fd5b85356148458161450f565b9450602086013561485581614524565b93506147ea60408701614536565b6000806000806080858703121561487957600080fd5b84356148848161450f565b935060208501356148948161450f565b925060408501356148a481614524565b9396929550929360600135925050565b6000806000606084860312156148c957600080fd5b83356148d48161450f565b925060208401356148e48161450f565b929592945050506040919091013590565b6000806040838503121561490857600080fd5b82356149138161450f565b915060208301356149238161450f565b809150509250929050565b600081518084526020808501945080840160005b838110156149675781516001600160801b031687529582019590820190600101614942565b509495945050505050565b606080825284519082018190526000906020906080840190828801845b828110156149b45781516001600160a01b03168452928401929084019060010161498f565b5050508381038285015285518082528683019183019060005b818110156149ef57835163ffffffff16835292840192918401916001016149cd565b50508481036040860152614a03818761492e565b98975050505050505050565b600080600080600060808688031215614a2757600080fd5b8535614a328161450f565b94506020860135614a4281614524565b93506040860135925060608601356001600160401b0381111561480557600080fd5b60008060408385031215614a7757600080fd5b8235614a828161450f565b946020939093013593505050565b60008060008060608587031215614aa657600080fd5b8435614ab18161450f565b93506020850135614ac181614524565b925060408501356001600160401b03811115614adc57600080fd5b614ae88782880161454d565b95989497509550505050565b6020808252601390820152724944413a20455f4e4f5f5a45524f5f5355425360681b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115614b4a57614b4a614b21565b500190565b600082821015614b6157614b61614b21565b500390565b600081518084526020808501945080840160005b8381101561496757815187529582019590820190600101614b7a565b8281526040602082015260006141266040830184614b66565b60006001600160801b0383811690831681811015614bcf57614bcf614b21565b039392505050565b60006001600160ff1b0381841382841380821686840486111615614bfd57614bfd614b21565b600160ff1b6000871282811687830589121615614c1c57614c1c614b21565b60008712925087820587128484161615614c3857614c38614b21565b87850587128184161615614c4e57614c4e614b21565b505050929093029392505050565b6000600160ff1b8201614c7157614c71614b21565b5060000390565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03841681526001600160801b038316602082015260606040820181905260009061387c90830184614650565b6001600160a01b038516815263ffffffff841660208201526001600160801b0383166040820152608060608201819052600090614d0390830184614650565b9695505050505050565b6001600160a01b038316815260406020820181905260009061412690830184614650565b6001600160a01b038416815263ffffffff8316602082015260606040820181905260009061387c90830184614650565b600060208284031215614d7357600080fd5b5051919050565b6000816000190483118215151615614d9457614d94614b21565b500290565b6020808252600f908201526e092888274408abe9c9ebe929c888ab608b1b604082015260600190565b60006001600160801b03808316818516808303821115614de457614de4614b21565b01949350505050565b600082614e0a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715614e9d57614e9d614e64565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614ecb57614ecb614e64565b604052919050565b60006001600160401b03821115614eec57614eec614e64565b5060051b60200190565b600082601f830112614f0757600080fd5b81516020614f1c614f1783614ed3565b614ea3565b82815260059290921b84018101918181019086841115614f3b57600080fd5b8286015b84811015614f565780518352918301918301614f3f565b509695505050505050565b600060208284031215614f7357600080fd5b81516001600160401b03811115614f8957600080fd5b61412684828501614ef6565b600080821280156001600160ff1b0384900385131615614fb757614fb7614b21565b600160ff1b8390038412811615614fd057614fd0614b21565b50500190565b600063ffffffff808316818103614fef57614fef614b21565b6001019392505050565b805161432b8161450f565b60006020828403121561501657600080fd5b8151612e108161450f565b8051801515811461432b57600080fd5b60006020828403121561504357600080fd5b612e1082615021565b805160ff8116811461432b57600080fd5b80516001600160e01b03198116811461432b57600080fd5b600082601f83011261508657600080fd5b81516001600160401b0381111561509f5761509f614e64565b6150b2601f8201601f1916602001614ea3565b8181528460208386010111156150c757600080fd5b614126826020830160208701614620565b6000602082840312156150ea57600080fd5b81516001600160401b038082111561510157600080fd5b90830190610160828603121561511657600080fd5b61511e614e7a565b6151278361504c565b81526151356020840161504c565b60208201526040830151604082015261515060608401614ff9565b60608201526151616080840161505d565b608082015260a08301518281111561517857600080fd5b61518487828601615075565b60a08301525060c083015160c082015260e083015160e08201526101009150818301518282015261012091506151bb828401614ff9565b8282015261014091506151cf828401614ff9565b91810191909152949350505050565b6000806000606084860312156151f357600080fd5b6151fc84615021565b925061520a60208501615021565b9150604084015190509250925092565b6001600160a01b038681168252851660208201526040810184905260a06060820181905260009061524d90830185614650565b8281036080840152614a038185614650565b6001600160a01b038516815260806020820181905260009061528390830186614650565b8415156040840152828103606084015261529d8185614650565b979650505050505050565b6000602082840312156152ba57600080fd5b81516001600160401b038111156152d057600080fd5b61412684828501615075565b60018060a01b038416815282602082015260606040820152600061387c6060830184614b66565b6001600160a01b038781168252861660208201526040810185905260c06060820181905260009061533690830186614650565b82810360808401526153488186614650565b905082810360a084015261535c8185614650565b9998505050505050505050565b60006001600160801b0380881683528087166020840152808616604084015280851660608401525060a0608083015261529d60a0830184614650565b600080604083850312156153b857600080fd5b82516001600160401b03808211156153cf57600080fd5b818501915085601f8301126153e357600080fd5b815160206153f3614f1783614ed3565b82815260059290921b8401810191818101908984111561541257600080fd5b948201945b8386101561543957855161542a81614524565b82529482019490820190615417565b9188015191965090935050508082111561545257600080fd5b5061545f85828601614ef6565b9150509250929050565b60006001820161547b5761547b614b21565b5060010190565b60006020828403121561549457600080fd5b8151612e1081614524565b60a0815260006154b260a0830188614650565b6001600160a01b0396871660208401526040830195909552506060810192909252909216608090920191909152919050565b6040815260006154f76040830185614650565b9050826020830152939250505056fea2646970667358221220fb5dcdeac243b4d14ec9cf009ea387e156308a56e4aac0c0a9b3714abdc4d7a664736f6c634300080d0033608060405234801561001057600080fd5b50614a03806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b61004361003e3660046100ae565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008160405161006e906100a1565b6001600160a01b039091168152602001604051809103906000f08015801561009a573d6000803e3d6000fd5b5092915050565b6148ef806100df83390190565b6000602082840312156100c057600080fd5b81356001600160a01b03811681146100d757600080fd5b939250505056fe60a06040523480156200001157600080fd5b50604051620048ef380380620048ef833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516147f2620000fd600039600081816103f701528181610a8101528181610aef01528181610b8501528181610c1c01528181610e7101528181610fcb0152818161109a015281816112b1015281816113ff015281816115930152818161187a0152818161193c015281816119c3015281816132f7015261357701526147f26000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806362aa5287116101b8578063a9059cbb11610104578063d9d078d6116100a2578063ee719bc81161007c578063ee719bc81461076f578063fad8b32a14610780578063fc673c4f14610793578063fe9d9303146107a657600080fd5b8063d9d078d6146106f5578063dd62ed3e14610708578063eb3537cc1461074157600080fd5b8063c68d4283116100de578063c68d4283146106a9578063ca789464146106bc578063cf97256d146106cf578063d95b6371146106e257600080fd5b8063a9059cbb14610670578063b84cdd4a14610683578063bb0d196e1461069657600080fd5b8063959b8c3f116101715780639d8767411161014b5780639d87674114610624578063a1b2bf8b14610637578063a3a7e7f31461064a578063a457c2d71461065d57600080fd5b8063959b8c3f146105f657806395d89b41146106095780639bd9bbc61461061157600080fd5b806362aa52871461058457806362ad1b831461059757806366a12fb6146105aa5780636c2d9f2f146105bd57806370a08231146105d057806379359f6f146105e357600080fd5b80632ec8eec71161027757806345977d031161023057806350d75d251161020a57806350d75d251461053c57806352d1902d14610544578063556f0dc71461056a5780635b9d09cc1461057157600080fd5b806345977d03146104f657806346951954146105095780634b61cc331461051c57600080fd5b80632ec8eec714610468578063313ce5671461049b578063386fa221146104aa57806339509351146104bd57806341b706be146104d057806342fe0980146104e357600080fd5b806316d055d6116102e457806320bc4425116102be57806320bc4425146103f557806323b872dd1461042f578063245887fc14610442578063270483971461045557600080fd5b806316d055d6146103bd57806318160ddd146103d05780631863e809146103e257600080fd5b806306e485381461032c57806306fdde031461034a578063090c415e1461035f578063095ea7b31461037457806311bcc81e1461039757806312a6a3f8146103aa575b600080fd5b6103346107b9565b6040516103419190613856565b60405180910390f35b6103526107ca565b60405161034191906138fb565b61037261036d36600461396e565b61085c565b005b6103876103823660046139c9565b610910565b6040519015158152602001610341565b6103726103a53660046139f5565b610927565b6103726103b8366004613a0e565b610955565b6103726103cb366004613a59565b610a7f565b6003545b604051908152602001610341565b6103726103f0366004613b6d565b610ada565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610341565b61038761043d366004613bff565b610e57565b6103726104503660046139c9565b610e6f565b610372610463366004613c40565b610ee6565b61047b610476366004613c62565b610fc3565b604080519485526020850193909352918301526060820152608001610341565b60405160128152602001610341565b6103346104b8366004613c62565b611066565b6103876104cb3660046139c9565b611109565b6103726104de366004613a59565b611145565b6103726104f1366004613cc0565b611170565b6103726105043660046139f5565b61127a565b610372610517366004613c62565b6112a6565b61052f61052a366004613d5a565b611335565b6040516103419190613da0565b61041761137a565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196103d4565b60016103d4565b61037261057f366004613dd8565b6113a4565b610372610592366004613bff565b6113fd565b6103726105a5366004613e27565b611455565b6103726105b8366004613bff565b611502565b61052f6105cb366004613ec5565b611521565b6103d46105de366004613c62565b611563565b6103876105f1366004613c62565b61158b565b610372610604366004613c62565b611613565b610352611664565b61037261061f366004613dd8565b611673565b610372610632366004613efa565b6116c7565b610372610645366004613a0e565b611706565b610372610658366004613c62565b6117b0565b61038761066b3660046139c9565b6117c4565b61038761067e3660046139c9565b611813565b6103876106913660046139c9565b611821565b6103876106a4366004613c62565b611872565b6103726106b7366004613efa565b6118fa565b6103726106ca3660046139c9565b61193a565b6103726106dd3660046139c9565b6119ae565b6103876106f0366004613f52565b611a96565b6103876107033660046139c9565b611aa4565b6103d4610716366004613f52565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b61075461074f3660046139c9565b611abe565b60408051938452602084019290925290820152606001610341565b600e546001600160a01b0316610417565b61037261078e366004613c62565b611bfa565b6103726107a1366004613f8b565b611c4b565b6103726107b4366004613fd2565b611cea565b60606107c56012611d3a565b905090565b6060600f80546107d990614010565b80601f016020809104026020016040519081016040528092919081815260200182805461080590614010565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b60003385856040516020016108739392919061404a565b6040516020818303038152906040528051906020012090506108c881848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b600061091d338484611de1565b5060015b92915050565b6109523333836040518060200160405280600081525060405180602001604052806000815250611f08565b50565b604051339060009061096d9083908790602001614093565b60408051601f198184030181529190528051602090910120905061099181846120ef565b156109f65760405162461bcd60e51b815260206004820152602a60248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420616c726561604482015269191e4818dc99585d195960b21b60648201526084015b60405180910390fd5b610a3381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610a70939291906140d0565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ac75760405162461bcd60e51b81526004016109ed90614114565b610ad38484848461212b565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b62919061415f565b610b7e5760405162461bcd60e51b81526004016109ed9061417c565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0591906141c3565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf91906141c3565b9250829150506001600160a01b038116610cd7578691505b8515610d2757610ce684612249565b6001600160a01b038316600090815260026020526040902054610d0991906141f6565b6001600160a01b038316600090815260026020526040902055610dbd565b610d3084612249565b6001600160a01b038816600090815260026020526040902054610d5391906141f6565b6001600160a01b03881660009081526002602052604090205582610d7685612249565b6001600160a01b038416600090815260026020526040902054610d999190614237565b610da39190614237565b6001600160a01b0383166000908152600260205260409020555b6001600160a01b038516600090815260026020526040902054610de19084906141f6565b6001600160a01b038087166000818152600260205260409020929092558816337fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8a610e2e578b610e30565b865b89898f604051610e44959493929190614276565b60405180910390a4505050505050505050565b6000610e653385858561212b565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610eb75760405162461bcd60e51b81526004016109ed90614114565b610ee23383836040518060200160405280600081525060405180602001604052806000815250611f08565b5050565b6040513390600090610efe9083908690602001614093565b604051602081830303815290604052805190602001209050610f2081846120ef565b610f7e5760405162461bcd60e51b815260206004820152602960248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420646f6573206044820152681b9bdd08195e1a5cdd60ba1b60648201526084016109ed565b610f8881846122b7565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b91906142a9565b90506110578582611abe565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa1580156110e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092191908101906142c2565b3360008181526011602090815260408083206001600160a01b0387168452909152812054909161091d918590611140908690614373565b611de1565b3330146111645760405162461bcd60e51b81526004016109ed9061438b565b610ad38385848461212b565b600054610100900460ff1661118b5760005460ff161561118f565b303b155b6111f25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109ed565b600054610100900460ff16158015611214576000805461ffff19166101011790555b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055611248600f86866137c6565b50611255601084846137c6565b5061125f306122d8565b8015611271576000805461ff00191690555b50505050505050565b610952333333846040518060200160405280600081525060405180602001604052806000815250612406565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461132c5760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a206f6e6c7920686f73742063616e2075706461746560448201526420636f646560d81b60648201526084016109ed565b61095281612609565b6060600085858560405160200161134e9392919061404a565b6040516020818303038152906040528051906020012090506113708184612849565b9695505050505050565b60006107c57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6113f7333386866040518060200160405280600081525087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061240692505050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146114455760405162461bcd60e51b81526004016109ed90614114565b611450838383611de1565b505050565b336114626012828a6128d8565b61147e5760405162461bcd60e51b81526004016109ed906143c2565b6114f88189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250612981915050565b5050505050505050565b3330146114455760405162461bcd60e51b81526004016109ed9061438b565b606060008484604051602001611538929190614093565b60405160208183030381529060405280519060200120905061155a8184612849565b95945050505050565b60008061156f83610fc3565b5050509050600081126115825780610e68565b60009392505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070391906142a9565b33611620601282846129f8565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546107d990614010565b6113f73333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506129819050565b3330146116e65760405162461bcd60e51b81526004016109ed9061438b565b604080516000815260208101909152611450903390859085908590612afc565b604051339060009061171e9083908790602001614093565b60405160208183030381529060405280519060200120905061177381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610a70939291906140d0565b610ee23333836117bf33611563565b61212b565b600061091d3384611140856040518060600160405280602a8152602001614766602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190612c03565b6000610e683333858561212b565b6000806000806118318686611abe565b925092509250600061185982841161184a576000612249565b6118548385614412565b612249565b61186390856141f6565b60001315979650505050505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069191906142a9565b3330146119195760405162461bcd60e51b81526004016109ed9061438b565b60408051600080825260208201909252611450913391869186918690612c2f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146119825760405162461bcd60e51b81526004016109ed90614114565b610ee2338384846040518060200160405280600081525060405180602001604052806000815250612406565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a36919061415f565b611a525760405162461bcd60e51b81526004016109ed9061417c565b6001600160a01b038216600090815260026020526040902054611a769082906141f6565b6001600160a01b0390921660009081526002602052604090209190915550565b6000610e68601284846128d8565b600080611ab18484611abe565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080611ae386611066565b905060005b8151811015611bf1576000806000848481518110611b0857611b08614429565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015611b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8b919061443f565b91945092509050611b9c8288614373565b9650611ba88187614373565b9550611bc5818311611bbb576000612249565b6118548284614412565b611bcf848a6141f6565b611bd99190614237565b97505050508080611be99061446d565b915050611ae8565b50509250925092565b33611c0760128284612d38565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b33611c58601282896128d8565b611c745760405162461bcd60e51b81526004016109ed906143c2565b61127181888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250611f0892505050565b61145033338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611f08915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611d9457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d76575b50505050509050919050565b60005b8151811015611450576000828281518110611dc057611dc0614429565b6020026020010151905080828501555080611dda9061446d565b9050611da3565b6001600160a01b038316611e455760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a20617070726f76652066726f6d207a65726f206164604482015264647265737360d81b60648201526084016109ed565b6001600160a01b038216611ea75760405162461bcd60e51b815260206004820152602360248201527f5375706572546f6b656e3a20617070726f766520746f207a65726f206164647260448201526265737360e81b60648201526084016109ed565b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b0316611f605760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b600080611f6c85612e30565b91509150611f7d8787838787612afc565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fea91906142a9565b600e54909150612004906001600160a01b03168885612eec565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561204d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207191906142a9565b9050600061207f8284614412565b90508085146120a05760405162461bcd60e51b81526004016109ed90614486565b886001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516120db91815260200190565b60405180910390a250505050505050505050565b6000805b828110156121215783810154801561211057600192505050610921565b5061211a8161446d565b90506120f3565b5060009392505050565b60006001600160a01b0384166121535760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0383166121795760405162461bcd60e51b81526004016109ed90614529565b60003390506121aa818686866040518060200160405280600081525060405180602001604052806000815250612f4f565b846001600160a01b0316866001600160a01b03161461223d5761223d8587611140866040518060600160405280602d8152602001614790602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054612c039092919063ffffffff16565b50600195945050505050565b60006001600160ff1b038211156122b35760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016109ed565b5090565b60005b81811015611450576000838201556122d18161446d565b90506122ba565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156123f257600080fd5b505af1158015610ad3573d6000803e3d6000fd5b600e546001600160a01b031661245e5760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b60008061246a85612e30565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156124bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124df91906142a9565b600e549091506124fa906001600160a01b0316893086613000565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612543573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256791906142a9565b905060006125758383614412565b90508085146125965760405162461bcd60e51b81526004016109ed90614486565b6125b98b8a868c6001600160a01b03168e6001600160a01b031614158b8b612c2f565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516125f491815260200190565b60405180910390a25050505050505050505050565b60006126337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036126895760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016109ed565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126eb91906142a9565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146127655760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016109ed565b6001600160a01b03811630036127bd5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016109ed565b6127e5817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b03841660208301520160405180910390a150565b6060816001600160401b0381111561286357612863613aaa565b60405190808252806020026020018201604052801561288c578160200160208202803683370190505b50905060005b828110156128d1576000818501549050808383815181106128b5576128b5614429565b6020908102919091010152506128ca8161446d565b9050612892565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061294757506001600160a01b038316600090815260018501602052604090205460ff16801561294757506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610e6557506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166129a75760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0385166129cd5760405162461bcd60e51b81526004016109ed90614529565b6129db878787878787613038565b6129e9878787878787612f4f565b6112718787878787878761315f565b806001600160a01b0316826001600160a01b031603612a6f5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612ac5576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b038416612b5d5760405162461bcd60e51b815260206004820152602260248201527f5375706572546f6b656e3a206275726e2066726f6d207a65726f206164647265604482015261737360f01b60648201526084016109ed565b612b6c85856000868686613038565b612b7684846132ef565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612bbd9392919061456d565b60405180910390a36040518381526000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610901565b60008184841115612c275760405162461bcd60e51b81526004016109ed91906138fb565b505050900390565b6001600160a01b038516612c855760405162461bcd60e51b815260206004820181905260248201527f5375706572546f6b656e3a206d696e7420746f207a65726f206164647265737360448201526064016109ed565b612c8f8585613443565b612c9f866000878786868961315f565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612ce69392919061456d565b60405180910390a36040518481526001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3505050505050565b336001600160a01b03821603612da35760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612dfd576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b600e54600090819081906012600160a01b90910460ff161015612e8f57600e54612e6590600160a01b900460ff166012614598565b612e7090600a61469f565b9050612e7c81856146ae565b9250612e8881846146d0565b9150612ee6565b600e546012600160a01b90910460ff161115612edf57600e54612ebe90601290600160a01b900460ff16614598565b612ec990600a61469f565b9050612ed581856146d0565b9250839150612ee6565b8391508192505b50915091565b6040516001600160a01b03831660248201526044810182905261145090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261349d565b612f628585612f5d86612249565b61356f565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051612fb39392919061456d565b60405180910390a4836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612d2891815260200190565b6040516001600160a01b03808516602483015283166044820152606481018290526113f79085906323b872dd60e01b90608401612f18565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156130b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130dd91906141c3565b90506001600160a01b0381161561127157604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613124908a908a908a908a908a908a906004016146ef565b600060405180830381600087803b15801561313e57600080fd5b505af1158015613152573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156131e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061320491906141c3565b90506001600160a01b03811615613280576040516223de2960e01b81526001600160a01b038216906223de2990613249908b908b908b908b908b908b906004016146ef565b600060405180830381600087803b15801561326357600080fd5b505af1158015613277573d6000803e3d6000fd5b505050506114f8565b81156114f8576001600160a01b0386163b156114f85760405162461bcd60e51b815260206004820152602860248201527f5375706572546f6b656e3a206e6f7420616e20455243373737546f6b656e73526044820152671958da5c1a595b9d60c21b60648201526084016109ed565b6000613377837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f91906142a9565b5050905061338482612249565b8112156133e85760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206275726e20616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6133f182612249565b6001600160a01b0384166000908152600260205260409020546134149190614237565b6001600160a01b03841660009081526002602052604090205560035461343b908390614412565b600355505050565b61344c81612249565b6001600160a01b03831660009081526002602052604090205461346f91906141f6565b6001600160a01b038316600090815260026020526040902055600354613496908290614373565b6003555050565b60006134f2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136b29092919063ffffffff16565b8051909150156114505780806020019051810190613510919061415f565b6114505760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109ed565b60006135d3847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505090508181121561363c5760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206d6f766520616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6001600160a01b038416600090815260026020526040902054613660908390614237565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546136909083906141f6565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610e658484600085856001600160a01b0385163b6137145760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ed565b600080866001600160a01b031685876040516137309190614749565b60006040518083038185875af1925050503d806000811461376d576040519150601f19603f3d011682016040523d82523d6000602084013e613772565b606091505b509150915061378282828661378d565b979650505050505050565b6060831561379c575081610e68565b8251156137ac5782518084602001fd5b8160405162461bcd60e51b81526004016109ed91906138fb565b8280546137d290614010565b90600052602060002090601f0160209004810192826137f4576000855561383a565b82601f1061380d5782800160ff1982351617855561383a565b8280016001018555821561383a579182015b8281111561383a57823582559160200191906001019061381f565b506122b39291505b808211156122b35760008155600101613842565b6020808252825182820181905260009190848201906040850190845b818110156138975783516001600160a01b031683529284019291840191600101613872565b50909695505050505050565b60005b838110156138be5781810151838201526020016138a6565b838111156113f75750506000910152565b600081518084526138e78160208601602086016138a3565b601f01601f19169290920160200192915050565b602081526000610e6860208301846138cf565b6001600160a01b038116811461095257600080fd5b60008083601f84011261393557600080fd5b5081356001600160401b0381111561394c57600080fd5b6020830191508360208260051b850101111561396757600080fd5b9250929050565b6000806000806060858703121561398457600080fd5b843561398f8161390e565b93506020850135925060408501356001600160401b038111156139b157600080fd5b6139bd87828801613923565b95989497509550505050565b600080604083850312156139dc57600080fd5b82356139e78161390e565b946020939093013593505050565b600060208284031215613a0757600080fd5b5035919050565b600080600060408486031215613a2357600080fd5b8335925060208401356001600160401b03811115613a4057600080fd5b613a4c86828701613923565b9497909650939450505050565b60008060008060808587031215613a6f57600080fd5b8435613a7a8161390e565b93506020850135613a8a8161390e565b92506040850135613a9a8161390e565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ae857613ae8613aaa565b604052919050565b600082601f830112613b0157600080fd5b81356001600160401b03811115613b1a57613b1a613aaa565b613b2d601f8201601f1916602001613ac0565b818152846020838601011115613b4257600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461095257600080fd5b600080600080600080600060e0888a031215613b8857600080fd5b8735965060208801356001600160401b03811115613ba557600080fd5b613bb18a828b01613af0565b9650506040880135613bc28161390e565b94506060880135613bd281613b5f565b93506080880135613be28161390e565b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215613c1457600080fd5b8335613c1f8161390e565b92506020840135613c2f8161390e565b929592945050506040919091013590565b60008060408385031215613c5357600080fd5b50508035926020909101359150565b600060208284031215613c7457600080fd5b8135610e688161390e565b60008083601f840112613c9157600080fd5b5081356001600160401b03811115613ca857600080fd5b60208301915083602082850101111561396757600080fd5b60008060008060008060808789031215613cd957600080fd5b8635613ce48161390e565b9550602087013560ff81168114613cfa57600080fd5b945060408701356001600160401b0380821115613d1657600080fd5b613d228a838b01613c7f565b90965094506060890135915080821115613d3b57600080fd5b50613d4889828a01613c7f565b979a9699509497509295939492505050565b60008060008060808587031215613d7057600080fd5b8435613d7b8161390e565b93506020850135613d8b8161390e565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b8181101561389757835183529284019291840191600101613dbc565b60008060008060608587031215613dee57600080fd5b8435613df98161390e565b93506020850135925060408501356001600160401b03811115613e1b57600080fd5b6139bd87828801613c7f565b600080600080600080600060a0888a031215613e4257600080fd5b8735613e4d8161390e565b96506020880135613e5d8161390e565b95506040880135945060608801356001600160401b0380821115613e8057600080fd5b613e8c8b838c01613c7f565b909650945060808a0135915080821115613ea557600080fd5b50613eb28a828b01613c7f565b989b979a50959850939692959293505050565b600080600060608486031215613eda57600080fd5b8335613ee58161390e565b95602085013595506040909401359392505050565b600080600060608486031215613f0f57600080fd5b8335613f1a8161390e565b92506020840135915060408401356001600160401b03811115613f3c57600080fd5b613f4886828701613af0565b9150509250925092565b60008060408385031215613f6557600080fd5b8235613f708161390e565b91506020830135613f808161390e565b809150509250929050565b60008060008060008060808789031215613fa457600080fd5b8635613faf8161390e565b95506020870135945060408701356001600160401b0380821115613d1657600080fd5b600080600060408486031215613fe757600080fd5b8335925060208401356001600160401b0381111561400457600080fd5b613a4c86828701613c7f565b600181811c9082168061402457607f821691505b60208210810361404457634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b038311156140f757600080fd5b8260051b8085606085013760009201606001918252509392505050565b6020808252602b908201527f5375706572666c756964546f6b656e3a204f6e6c7920686f737420636f6e747260408201526a1858dd08185b1b1bddd95960aa1b606082015260800190565b60006020828403121561417157600080fd5b8151610e6881613b5f565b60208082526027908201527f5375706572666c756964546f6b656e3a206f6e6c79206c6973746564206167726040820152661959595b595b9d60ca1b606082015260800190565b6000602082840312156141d557600080fd5b8151610e688161390e565b634e487b7160e01b600052601160045260246000fd5b600080821280156001600160ff1b0384900385131615614218576142186141e0565b600160ff1b8390038412811615614231576142316141e0565b50500190565b60008083128015600160ff1b850184121615614255576142556141e0565b6001600160ff1b0384018313811615614270576142706141e0565b50500390565b85815260018060a01b038516602082015283604082015282606082015260a06080820152600061378260a08301846138cf565b6000602082840312156142bb57600080fd5b5051919050565b600060208083850312156142d557600080fd5b82516001600160401b03808211156142ec57600080fd5b818501915085601f83011261430057600080fd5b81518181111561431257614312613aaa565b8060051b9150614323848301613ac0565b818152918301840191848101908884111561433d57600080fd5b938501935b8385101561436757845192506143578361390e565b8282529385019390850190614342565b98975050505050505050565b60008219821115614386576143866141e0565b500190565b6020808252601d908201527f5375706572546f6b656e3a206f6e6c792073656c6620616c6c6f776564000000604082015260600190565b60208082526030908201527f5375706572546f6b656e3a2063616c6c6572206973206e6f7420616e206f706560408201526f3930ba37b9103337b9103437b63232b960811b606082015260800190565b600082821015614424576144246141e0565b500390565b634e487b7160e01b600052603260045260246000fd5b60008060006060848603121561445457600080fd5b8351925060208401519150604084015190509250925092565b60006001820161447f5761447f6141e0565b5060010190565b6020808252603a908201527f5375706572546f6b656e3a20696e666c6174696f6e6172792f6465666c61746960408201527f6f6e61727920746f6b656e73206e6f7420737570706f72746564000000000000606082015260800190565b60208082526026908201527f5375706572546f6b656e3a207472616e736665722066726f6d207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f5375706572546f6b656e3a207472616e7366657220746f207a65726f206164646040820152637265737360e01b606082015260800190565b83815260606020820152600061458660608301856138cf565b828103604084015261137081856138cf565b600060ff821660ff8416808210156145b2576145b26141e0565b90039392505050565b600181815b808511156145f65781600019048211156145dc576145dc6141e0565b808516156145e957918102915b93841c93908002906145c0565b509250929050565b60008261460d57506001610921565b8161461a57506000610921565b8160018114614630576002811461463a57614656565b6001915050610921565b60ff84111561464b5761464b6141e0565b50506001821b610921565b5060208310610133831016604e8410600b8410161715614679575081810a610921565b61468383836145bb565b8060001904821115614697576146976141e0565b029392505050565b6000610e6860ff8416836145fe565b6000826146cb57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156146ea576146ea6141e0565b500290565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c06080820181905260009061472a908301856138cf565b82810360a084015261473c81856138cf565b9998505050505050505050565b6000825161475b8184602087016138a3565b919091019291505056fe5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205d87e53c8441fe86e64bb3c205f08d2fb2931367f0e12803dacef022eefd3b8964736f6c634300080d0033a2646970667358221220ec49360a8f9e56f6049f45b090f1cbd07698990b9ed784e07b42f5872658d5d064736f6c634300080d003360c060405234801561001057600080fd5b5060405161138338038061138383398101604081905261002f9161005e565b6001600160a01b039182166080521660a052610098565b6001600160a01b038116811461005b57600080fd5b50565b6000806040838503121561007157600080fd5b825161007c81610046565b602084015190925061008d81610046565b809150509250929050565b60805160a0516112b26100d160003960006102dd01526000818160a501528181610220015281816104c90152610a1601526112b26000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806352d1902d1161006657806352d1902d146101255780638129fc1c146101535780639470a5b21461015b578063a6d0c53414610172578063d412d3441461018557600080fd5b806320bc4425146100a3578063431f1481146100e257806346951954146100f55780634dcc4d791461010a57806350d75d251461011d575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b6100c56100f0366004610b6d565b610198565b610108610103366004610c00565b610215565b005b6100c5610118366004610c00565b6102bb565b6100c5610352565b6040517fb146a22bc9644a3313a7e28592f37d32718a2b618d3d136aa524b0d86b87b62081526020016100d9565b610108610381565b6000546201000090046001600160a01b03166100c5565b6100c5610180366004610c33565b610441565b610108610193366004610c00565b610721565b600061020a87886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102009190610cd9565b8888888888610441565b979650505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102a75760405162461bcd60e51b815260206004820152602c60248201527f5375706572546f6b656e466163746f72793a206f6e6c7920686f73742063616e60448201526b2075706461746520636f646560a01b60648201526084015b60405180910390fd5b6102b0816107bf565b6102b86109ff565b50565b6040516313db266360e31b81526001600160a01b0382811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690639ed93318906024016020604051808303816000875af1158015610328573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034c9190610cf6565b92915050565b600061037c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b600054610100900460ff1661039c5760005460ff16156103a0565b303b155b6104035760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161029e565b600054610100900460ff16158015610425576000805461ffff19166101011790555b61042d6109ff565b80156102b8576000805461ff001916905550565b60006001600160a01b0388166104995760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e466163746f72793a207a65726f206164647265737300604482015260640161029e565b60008660028111156104ad576104ad610d13565b0361054357604051634dcc4d7960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201523090634dcc4d79906024016020604051808303816000875af1158015610518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053c9190610cf6565b905061067b565b600186600281111561055757610557610d13565b036105f757600060405161056a90610ae1565b604051809103906000f080158015610586573d6000803e3d6000fd5b50600054604051634a0687ef60e01b81526001600160a01b036201000090920482166004820152919250821690634a0687ef90602401600060405180830381600087803b1580156105d657600080fd5b505af11580156105ea573d6000803e3d6000fd5b505050508091505061067b565b600060405161060590610aee565b604051809103906000f080158015610621573d6000803e3d6000fd5b509050806001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561065f57600080fd5b505af1158015610673573d6000803e3d6000fd5b509293505050505b6040516285fc1360e71b81526001600160a01b038216906342fe0980906106b0908b908b908a908a908a908a90600401610d52565b600060405180830381600087803b1580156106ca57600080fd5b505af11580156106de573d6000803e3d6000fd5b50506040516001600160a01b03841692507fb52c6d9d122e8c07769b96d7bb14e66db58ee03fdebaaa2f92547e9c7ef0e65f9150600090a2979650505050505050565b600054604051634a0687ef60e01b81526001600160a01b0362010000909204821660048201528291821690634a0687ef90602401600060405180830381600087803b15801561076f57600080fd5b505af1158015610783573d6000803e3d6000fd5b50506040516001600160a01b03851692507f437790724a6e97b75d23117f28cdd4b1beeafc34f7a0911ef256e9334f4369a59150600090a25050565b60006107e97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b03160361083f5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c65000000604482015260640161029e565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a19190610da0565b7fb146a22bc9644a3313a7e28592f37d32718a2b618d3d136aa524b0d86b87b6201461091b5760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b606482015260840161029e565b6001600160a01b03811630036109735760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f7000000000000000604482015260640161029e565b61099b817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7fb146a22bc9644a3313a7e28592f37d32718a2b618d3d136aa524b0d86b87b620604080519182526001600160a01b03841660208301520160405180910390a150565b604051634dcc4d7960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201523090634dcc4d79906024016020604051808303816000875af1158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a899190610cf6565b6000805462010000600160b01b031916620100006001600160a01b03938416810291909117808355604051919004909216917fc13fb19d60857980e565bf5dae406b8802d3c1cec50c6156b30b12b8740297839190a2565b61024a80610dba83390190565b6102798061100483390190565b6001600160a01b03811681146102b857600080fd5b803560038110610b1f57600080fd5b919050565b60008083601f840112610b3657600080fd5b50813567ffffffffffffffff811115610b4e57600080fd5b602083019150836020828501011115610b6657600080fd5b9250929050565b60008060008060008060808789031215610b8657600080fd5b8635610b9181610afb565b9550610b9f60208801610b10565b9450604087013567ffffffffffffffff80821115610bbc57600080fd5b610bc88a838b01610b24565b90965094506060890135915080821115610be157600080fd5b50610bee89828a01610b24565b979a9699509497509295939492505050565b600060208284031215610c1257600080fd5b8135610c1d81610afb565b9392505050565b60ff811681146102b857600080fd5b600080600080600080600060a0888a031215610c4e57600080fd5b8735610c5981610afb565b96506020880135610c6981610c24565b9550610c7760408901610b10565b9450606088013567ffffffffffffffff80821115610c9457600080fd5b610ca08b838c01610b24565b909650945060808a0135915080821115610cb957600080fd5b50610cc68a828b01610b24565b989b979a50959850939692959293505050565b600060208284031215610ceb57600080fd5b8151610c1d81610c24565b600060208284031215610d0857600080fd5b8151610c1d81610afb565b634e487b7160e01b600052602160045260246000fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038716815260ff86166020820152608060408201819052600090610d809083018688610d29565b8281036060840152610d93818587610d29565b9998505050505050505050565b600060208284031215610db257600080fd5b505191905056fe608060405234801561001057600080fd5b5061022a806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f6100543660046101c4565b61006b565b610069610064610171565b6101a0565b565b6001600160a01b0381166100c65760405162461bcd60e51b815260206004820152601760248201527f5555505350726f78793a207a65726f206164647265737300000000000000000060448201526064015b60405180910390fd5b60006100f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316146101465760405162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a6564000060448201526064016100bd565b61016e817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50565b600061019b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b3660008037600080366000845af43d6000803e8080156101bf573d6000f35b3d6000fd5b6000602082840312156101d657600080fd5b81356001600160a01b03811681146101ed57600080fd5b939250505056fea264697066735822122055e86118ce2711c610170f2e930678ba3d15a2874e37c60b77b322eebc0ffc5f64736f6c634300080d0033608060405234801561001057600080fd5b50610259806100206000396000f3fe6080604052600436106100225760003560e01c80638129fc1c1461003957610031565b366100315761002f61004e565b005b61002f61004e565b34801561004557600080fd5b5061002f610060565b61005e6100596100fa565b6101cf565b565b7fb8fcd5719b3ddf8626f3664705a89b7fc476129a58c1aa5eda57c600cc1821a0546001600160a01b038116156100d45760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064015b60405180910390fd5b50337fb8fcd5719b3ddf8626f3664705a89b7fc476129a58c1aa5eda57c600cc1821a055565b7fb8fcd5719b3ddf8626f3664705a89b7fc476129a58c1aa5eda57c600cc1821a0546000906001600160a01b0381166101675760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b60448201526064016100cb565b806001600160a01b0316639470a5b26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c991906101f3565b91505090565b3660008037600080366000845af43d6000803e8080156101ee573d6000f35b3d6000fd5b60006020828403121561020557600080fd5b81516001600160a01b038116811461021c57600080fd5b939250505056fea264697066735822122078469625d42ba618be5e547b8a5c707c6fc43272d281b515b25ad24a92faef6264736f6c634300080d0033a2646970667358221220b3a60b7dec77b8e514138fe5cf81a784771302e4a7e600896eae3e15893dabc764736f6c634300080d0033",
|
|
69
|
+
"deployedBytecode": "0x60806040523480156200001157600080fd5b50600436106200003a5760003560e01c8063845531a4146200003f578063dfa98ad5146200007b575b600080fd5b620000566200005036600462000495565b620000bc565b604080516001600160a01b039384168152929091166020830152015b60405180910390f35b600154600254600354600554604080516001600160a01b03958616815293851660208501529184169183019190915291909116606082015260800162000072565b60008085858585604051620000d1906200043b565b620000e0949392919062000531565b604051809103906000f080158015620000fd573d6000803e3d6000fd5b509150816001600160a01b0316632f2ff15d836001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000174919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015620001b457600080fd5b505af1158015620001c9573d6000803e3d6000fd5b50505050816001600160a01b0316632f2ff15d836001600160a01b031663d53913936040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000241919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156200028157600080fd5b505af115801562000296573d6000803e3d6000fd5b50505050816001600160a01b0316632f2ff15d836001600160a01b031663e63ab1e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e919062000567565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156200034e57600080fd5b505af115801562000363573d6000803e3d6000fd5b50506005546040516001600160a01b03909116925063431f14819150849060019062000396908b908b9060200162000581565b6040516020818303038152906040528888604051602001620003ba92919062000581565b6040516020818303038152906040526040518563ffffffff1660e01b8152600401620003ea9493929190620005e7565b6020604051808303816000875af11580156200040a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000430919062000644565b905094509492505050565b611d93806200067783390190565b60008083601f8401126200045c57600080fd5b50813567ffffffffffffffff8111156200047557600080fd5b6020830191508360208285010111156200048e57600080fd5b9250929050565b60008060008060408587031215620004ac57600080fd5b843567ffffffffffffffff80821115620004c557600080fd5b620004d38883890162000449565b90965094506020870135915080821115620004ed57600080fd5b50620004fc8782880162000449565b95989497509550505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6040815260006200054760408301868862000508565b82810360208401526200055c81858762000508565b979650505050505050565b6000602082840312156200057a57600080fd5b5051919050565b81838237600f60fb1b9101908152600101919050565b6000815180845260005b81811015620005bf57602081850181015186830182015201620005a1565b81811115620005d2576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03851681526000600385106200061457634e487b7160e01b600052602160045260246000fd5b8460208301526080604083015262000630608083018562000597565b82810360608401526200055c818562000597565b6000602082840312156200065757600080fd5b81516001600160a01b03811681146200066f57600080fd5b939250505056fe60806040523480156200001157600080fd5b5060405162001d9338038062001d938339810160408190526200003491620003b5565b8151829082906200004d90600590602085019062000242565b5080516200006390600690602084019062000242565b50506007805460ff19169055506200007d600033620000dd565b620000a97f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000dd565b620000d57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000dd565b50506200045b565b620000e98282620000ed565b5050565b6200010482826200013060201b6200096e1760201c565b60008281526001602090815260409091206200012b918390620009f2620001d0821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200018c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001e7836001600160a01b038416620001f0565b90505b92915050565b60008181526001830160205260408120546200023957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001ea565b506000620001ea565b82805462000250906200041f565b90600052602060002090601f016020900481019282620002745760008555620002bf565b82601f106200028f57805160ff1916838001178555620002bf565b82800160010185558215620002bf579182015b82811115620002bf578251825591602001919060010190620002a2565b50620002cd929150620002d1565b5090565b5b80821115620002cd5760008155600101620002d2565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200031057600080fd5b81516001600160401b03808211156200032d576200032d620002e8565b604051601f8301601f19908116603f01168101908282118183101715620003585762000358620002e8565b816040528381526020925086838588010111156200037557600080fd5b600091505b838210156200039957858201830151818301840152908201906200037a565b83821115620003ab5760008385830101525b9695505050505050565b60008060408385031215620003c957600080fd5b82516001600160401b0380821115620003e157600080fd5b620003ef86838701620002fe565b935060208501519150808211156200040657600080fd5b506200041585828601620002fe565b9150509250929050565b600181811c908216806200043457607f821691505b6020821081036200045557634e487b7160e01b600052602260045260246000fd5b50919050565b611928806200046b6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d5391393146103af578063d547741f146103d6578063dd62ed3e146103e9578063e63ab1e91461042257600080fd5b8063a457c2d714610376578063a9059cbb14610389578063ca15c8731461039c57600080fd5b80639010d07c116100d35780639010d07c1461032857806391d148541461035357806395d89b4114610366578063a217fddf1461036e57600080fd5b806370a08231146102e457806379cc67901461030d5780638456cb591461032057600080fd5b8063313ce567116101665780633f4ba83a116101405780633f4ba83a146102ab57806340c10f19146102b357806342966c68146102c65780635c975abb146102d957600080fd5b8063313ce5671461027657806336568abe14610285578063395093511461029857600080fd5b806318160ddd116101a257806318160ddd1461021957806323b872dd1461022b578063248a9ca31461023e5780632f2ff15d1461026157600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063095ea7b314610206575b600080fd5b6101dc6101d73660046115cf565b610449565b60405190151581526020015b60405180910390f35b6101f9610474565b6040516101e89190611625565b6101dc610214366004611674565b610506565b6004545b6040519081526020016101e8565b6101dc61023936600461169e565b61051e565b61021d61024c3660046116da565b60009081526020819052604090206001015490565b61027461026f3660046116f3565b610542565b005b604051601281526020016101e8565b6102746102933660046116f3565b61056d565b6101dc6102a6366004611674565b6105f0565b61027461062f565b6102746102c1366004611674565b6106d5565b6102746102d43660046116da565b610774565b60075460ff166101dc565b61021d6102f236600461171f565b6001600160a01b031660009081526002602052604090205490565b61027461031b366004611674565b610781565b610274610796565b61033b61033636600461173a565b61083a565b6040516001600160a01b0390911681526020016101e8565b6101dc6103613660046116f3565b610859565b6101f9610882565b61021d600081565b6101dc610384366004611674565b610891565b6101dc610397366004611674565b610923565b61021d6103aa3660046116da565b610931565b61021d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102746103e43660046116f3565b610948565b61021d6103f736600461175c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61021d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216635a05180f60e01b148061046e575061046e82610a07565b92915050565b60606005805461048390611786565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90611786565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b5050505050905090565b600033610514818585610a3c565b5060019392505050565b60003361052c858285610b60565b610537858585610bf2565b506001949350505050565b60008281526020819052604090206001015461055e8133610dcb565b6105688383610e2f565b505050565b6001600160a01b03811633146105e25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105ec8282610e51565b5050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909190610514908290869061062a9087906117d6565b610a3c565b6106597f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610859565b6106cb5760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105d9565b6106d3610e73565b565b6106ff7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610859565b61076a5760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105d9565b6105ec8282610f06565b61077e3382610ff1565b50565b61078c823383610b60565b6105ec8282610ff1565b6107c07f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610859565b6108325760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105d9565b6106d361114b565b600082815260016020526040812061085290836111c6565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461048390611786565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909190838110156109165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d9565b6105378286868403610a3c565b600033610514818585610bf2565b600081815260016020526040812061046e906111d2565b6000828152602081905260409020600101546109648133610dcb565b6105688383610e51565b6109788282610859565b6105ec576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556109ae3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610852836001600160a01b0384166111dc565b60006001600160e01b03198216637965db0b60e01b148061046e57506301ffc9a760e01b6001600160e01b031983161461046e565b6001600160a01b038316610a9e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d9565b6001600160a01b038216610aff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600360209081526040808320938616835292905220546000198114610bec5781811015610bdf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105d9565b610bec8484848403610a3c565b50505050565b6001600160a01b038316610c565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d9565b6001600160a01b038216610cb85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d9565b610cc383838361122b565b6001600160a01b03831660009081526002602052604090205481811015610d3b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105d9565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290610d729084906117d6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dbe91815260200190565b60405180910390a3610bec565b610dd58282610859565b6105ec57610ded816001600160a01b03166014611236565b610df8836020611236565b604051602001610e099291906117ee565b60408051601f198184030181529082905262461bcd60e51b82526105d991600401611625565b610e39828261096e565b600082815260016020526040902061056890826109f2565b610e5b82826113d2565b60008281526001602052604090206105689082611437565b60075460ff16610ebc5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105d9565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610f5c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105d9565b610f686000838361122b565b8060046000828254610f7a91906117d6565b90915550506001600160a01b03821660009081526002602052604081208054839290610fa79084906117d6565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166110515760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105d9565b61105d8260008361122b565b6001600160a01b038216600090815260026020526040902054818110156110d15760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105d9565b6001600160a01b0383166000908152600260205260408120838303905560048054849290611100908490611863565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60075460ff16156111915760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105d9565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ee93390565b6000610852838361144c565b600061046e825490565b60008181526001830160205260408120546112235750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561046e565b50600061046e565b610568838383611476565b6060600061124583600261187a565b6112509060026117d6565b67ffffffffffffffff81111561126857611268611899565b6040519080825280601f01601f191660200182016040528015611292576020820181803683370190505b509050600360fc1b816000815181106112ad576112ad6118af565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106112dc576112dc6118af565b60200101906001600160f81b031916908160001a905350600061130084600261187a565b61130b9060016117d6565b90505b6001811115611383576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061133f5761133f6118af565b1a60f81b828281518110611355576113556118af565b60200101906001600160f81b031916908160001a90535060049490941c9361137c816118c5565b905061130e565b5083156108525760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105d9565b6113dc8282610859565b156105ec576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610852836001600160a01b0384166114dc565b6000826000018281548110611463576114636118af565b9060005260206000200154905092915050565b60075460ff16156105685760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105d9565b600081815260018301602052604081205480156115c5576000611500600183611863565b855490915060009061151490600190611863565b9050818114611579576000866000018281548110611534576115346118af565b9060005260206000200154905080876000018481548110611557576115576118af565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061158a5761158a6118dc565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061046e565b600091505061046e565b6000602082840312156115e157600080fd5b81356001600160e01b03198116811461085257600080fd5b60005b838110156116145781810151838201526020016115fc565b83811115610bec5750506000910152565b60208152600082518060208401526116448160408501602087016115f9565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461166f57600080fd5b919050565b6000806040838503121561168757600080fd5b61169083611658565b946020939093013593505050565b6000806000606084860312156116b357600080fd5b6116bc84611658565b92506116ca60208501611658565b9150604084013590509250925092565b6000602082840312156116ec57600080fd5b5035919050565b6000806040838503121561170657600080fd5b8235915061171660208401611658565b90509250929050565b60006020828403121561173157600080fd5b61085282611658565b6000806040838503121561174d57600080fd5b50508035926020909101359150565b6000806040838503121561176f57600080fd5b61177883611658565b915061171660208401611658565b600181811c9082168061179a57607f821691505b6020821081036117ba57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156117e9576117e96117c0565b500190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516118268160178501602088016115f9565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516118578160288401602088016115f9565b01602801949350505050565b600082821015611875576118756117c0565b500390565b6000816000190483118215151615611894576118946117c0565b500290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816118d4576118d46117c0565b506000190190565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220afe1caf1e01f9ffa2b2ee0f93fd3af8e01926b940b318b54a1ea7d0d8697587864736f6c634300080d0033a2646970667358221220f58293d2f02aba4f81ce215a8800bc450db61e207e30ba427459a01bb0c398f964736f6c634300080d0033",
|
|
70
70
|
"immutableReferences": {},
|
|
71
71
|
"generatedSources": [
|
|
72
72
|
{
|
|
@@ -384,7 +384,7 @@
|
|
|
384
384
|
}
|
|
385
385
|
]
|
|
386
386
|
},
|
|
387
|
-
"name": "abi_encode_tuple_t_contract$_TestGovernance_$
|
|
387
|
+
"name": "abi_encode_tuple_t_contract$_TestGovernance_$38269__to_t_address__fromStack_reversed",
|
|
388
388
|
"nodeType": "YulFunctionDefinition",
|
|
389
389
|
"parameters": [
|
|
390
390
|
{
|
|
@@ -1304,7 +1304,7 @@
|
|
|
1304
1304
|
}
|
|
1305
1305
|
]
|
|
1306
1306
|
},
|
|
1307
|
-
"name": "abi_encode_tuple_t_contract$_Superfluid_$
|
|
1307
|
+
"name": "abi_encode_tuple_t_contract$_Superfluid_$34994_t_address_t_rational_14400_by_1_t_rational_1800_by_1_t_array$_t_address_$dyn_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed",
|
|
1308
1308
|
"nodeType": "YulFunctionDefinition",
|
|
1309
1309
|
"parameters": [
|
|
1310
1310
|
{
|
|
@@ -1474,7 +1474,7 @@
|
|
|
1474
1474
|
}
|
|
1475
1475
|
]
|
|
1476
1476
|
},
|
|
1477
|
-
"name": "abi_encode_tuple_t_contract$_Superfluid_$
|
|
1477
|
+
"name": "abi_encode_tuple_t_contract$_Superfluid_$34994__to_t_address__fromStack_reversed",
|
|
1478
1478
|
"nodeType": "YulFunctionDefinition",
|
|
1479
1479
|
"parameters": [
|
|
1480
1480
|
{
|
|
@@ -1696,7 +1696,7 @@
|
|
|
1696
1696
|
}
|
|
1697
1697
|
]
|
|
1698
1698
|
},
|
|
1699
|
-
"name": "abi_encode_tuple_t_contract$_Superfluid_$
|
|
1699
|
+
"name": "abi_encode_tuple_t_contract$_Superfluid_$34994_t_address__to_t_address_t_address__fromStack_reversed",
|
|
1700
1700
|
"nodeType": "YulFunctionDefinition",
|
|
1701
1701
|
"parameters": [
|
|
1702
1702
|
{
|
|
@@ -1924,7 +1924,7 @@
|
|
|
1924
1924
|
}
|
|
1925
1925
|
]
|
|
1926
1926
|
},
|
|
1927
|
-
"name": "abi_encode_tuple_t_contract$_Superfluid_$
|
|
1927
|
+
"name": "abi_encode_tuple_t_contract$_Superfluid_$34994_t_contract$_SuperTokenFactoryHelper_$32029__to_t_address_t_address__fromStack_reversed",
|
|
1928
1928
|
"nodeType": "YulFunctionDefinition",
|
|
1929
1929
|
"parameters": [
|
|
1930
1930
|
{
|
|
@@ -2272,7 +2272,7 @@
|
|
|
2272
2272
|
}
|
|
2273
2273
|
]
|
|
2274
2274
|
},
|
|
2275
|
-
"name": "abi_encode_tuple_t_contract$_Superfluid_$
|
|
2275
|
+
"name": "abi_encode_tuple_t_contract$_Superfluid_$34994_t_address_t_array$_t_address_$dyn_memory_ptr_t_address__to_t_address_t_address_t_array$_t_address_$dyn_memory_ptr_t_address__fromStack_reversed",
|
|
2276
2276
|
"nodeType": "YulFunctionDefinition",
|
|
2277
2277
|
"parameters": [
|
|
2278
2278
|
{
|
|
@@ -2318,7 +2318,7 @@
|
|
|
2318
2318
|
}
|
|
2319
2319
|
]
|
|
2320
2320
|
},
|
|
2321
|
-
"contents": "{\n { }\n function abi_encode_tuple_t_bool_t_bool__to_t_bool_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), iszero(iszero(value1)))\n }\n function abi_encode_tuple_t_contract$_TestGovernance_$
|
|
2321
|
+
"contents": "{\n { }\n function abi_encode_tuple_t_bool_t_bool__to_t_bool_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), iszero(iszero(value1)))\n }\n function abi_encode_tuple_t_contract$_TestGovernance_$38269__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_encode_array_address_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_tuple_t_contract$_Superfluid_$34994_t_address_t_rational_14400_by_1_t_rational_1800_by_1_t_array$_t_address_$dyn_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), 160)\n tail := abi_encode_array_address_dyn(value4, add(headStart, 160))\n }\n function abi_encode_tuple_t_contract$_Superfluid_$34994__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_Superfluid_$34994_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_contract$_Superfluid_$34994_t_contract$_SuperTokenFactoryHelper_$32029__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_contract$_Superfluid_$34994_t_address_t_array$_t_address_$dyn_memory_ptr_t_address__to_t_address_t_address_t_array$_t_address_$dyn_memory_ptr_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), 128)\n tail := abi_encode_array_address_dyn(value2, add(headStart, 128))\n mstore(add(headStart, 96), and(value3, _1))\n }\n}",
|
|
2322
2322
|
"id": 110,
|
|
2323
2323
|
"language": "Yul",
|
|
2324
2324
|
"name": "#utility.yul"
|
|
@@ -3392,7 +3392,7 @@
|
|
|
3392
3392
|
}
|
|
3393
3393
|
]
|
|
3394
3394
|
},
|
|
3395
|
-
"name": "abi_encode_tuple_t_contract$_ERC20PresetMinterPauser_$1762_t_contract$_SuperToken_$
|
|
3395
|
+
"name": "abi_encode_tuple_t_contract$_ERC20PresetMinterPauser_$1762_t_contract$_SuperToken_$31692__to_t_address_t_address__fromStack_reversed",
|
|
3396
3396
|
"nodeType": "YulFunctionDefinition",
|
|
3397
3397
|
"parameters": [
|
|
3398
3398
|
{
|
|
@@ -3738,7 +3738,7 @@
|
|
|
3738
3738
|
}
|
|
3739
3739
|
]
|
|
3740
3740
|
},
|
|
3741
|
-
"name": "abi_encode_tuple_t_contract$_Superfluid_$
|
|
3741
|
+
"name": "abi_encode_tuple_t_contract$_Superfluid_$34994_t_contract$_ConstantFlowAgreementV1_$9802_t_contract$_InstantDistributionAgreementV1_$13190_t_contract$_SuperTokenFactory_$32067__to_t_address_t_address_t_address_t_address__fromStack_reversed",
|
|
3742
3742
|
"nodeType": "YulFunctionDefinition",
|
|
3743
3743
|
"parameters": [
|
|
3744
3744
|
{
|
|
@@ -5733,7 +5733,7 @@
|
|
|
5733
5733
|
}
|
|
5734
5734
|
]
|
|
5735
5735
|
},
|
|
5736
|
-
"name": "abi_encode_tuple_t_contract$_ERC20WithTokenInfo_$
|
|
5736
|
+
"name": "abi_encode_tuple_t_contract$_ERC20WithTokenInfo_$19411_t_enum$_Upgradability_$18468_t_string_memory_ptr_t_string_memory_ptr__to_t_address_t_uint8_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed",
|
|
5737
5737
|
"nodeType": "YulFunctionDefinition",
|
|
5738
5738
|
"parameters": [
|
|
5739
5739
|
{
|
|
@@ -6031,7 +6031,7 @@
|
|
|
6031
6031
|
}
|
|
6032
6032
|
]
|
|
6033
6033
|
},
|
|
6034
|
-
"name": "abi_decode_tuple_t_contract$_ISuperToken_$
|
|
6034
|
+
"name": "abi_decode_tuple_t_contract$_ISuperToken_$18439_fromMemory",
|
|
6035
6035
|
"nodeType": "YulFunctionDefinition",
|
|
6036
6036
|
"parameters": [
|
|
6037
6037
|
{
|
|
@@ -6059,7 +6059,7 @@
|
|
|
6059
6059
|
}
|
|
6060
6060
|
]
|
|
6061
6061
|
},
|
|
6062
|
-
"contents": "{\n { }\n function abi_decode_string_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_encode_tuple_t_contract$_ERC20PresetMinterPauser_$1762_t_contract$_SuperToken_$
|
|
6062
|
+
"contents": "{\n { }\n function abi_decode_string_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_encode_tuple_t_contract$_ERC20PresetMinterPauser_$1762_t_contract$_SuperToken_$31692__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_contract$_Superfluid_$34994_t_contract$_ConstantFlowAgreementV1_$9802_t_contract$_InstantDistributionAgreementV1_$13190_t_contract$_SuperTokenFactory_$32067__to_t_address_t_address_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_string_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_calldata_ptr_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 64)\n let tail_1 := abi_encode_string_calldata(value0, value1, add(headStart, 64))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string_calldata(value2, value3, tail_1)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_packed_t_string_calldata_ptr_t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83__to_t_string_memory_ptr_t_bytes1__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, \"x\")\n end := add(_1, 1)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(pos, length), 0x20), 0)\n }\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_contract$_ERC20WithTokenInfo_$19411_t_enum$_Upgradability_$18468_t_string_memory_ptr_t_string_memory_ptr__to_t_address_t_uint8_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 128)\n let tail_1 := abi_encode_string(value2, add(headStart, 128))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_string(value3, tail_1)\n }\n function abi_decode_tuple_t_contract$_ISuperToken_$18439_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}",
|
|
6063
6063
|
"id": 110,
|
|
6064
6064
|
"language": "Yul",
|
|
6065
6065
|
"name": "#utility.yul"
|
|
@@ -6073,48 +6073,48 @@
|
|
|
6073
6073
|
"absolutePath": "project:/contracts/utils/SuperfluidFrameworkDeployer.sol",
|
|
6074
6074
|
"exportedSymbols": {
|
|
6075
6075
|
"ConstantFlowAgreementV1": [
|
|
6076
|
-
|
|
6076
|
+
9802
|
|
6077
6077
|
],
|
|
6078
6078
|
"ERC20PresetMinterPauser": [
|
|
6079
6079
|
1762
|
|
6080
6080
|
],
|
|
6081
6081
|
"ERC20WithTokenInfo": [
|
|
6082
|
-
|
|
6082
|
+
19411
|
|
6083
6083
|
],
|
|
6084
6084
|
"ISuperTokenFactory": [
|
|
6085
|
-
|
|
6085
|
+
18528
|
|
6086
6086
|
],
|
|
6087
6087
|
"InstantDistributionAgreementV1": [
|
|
6088
|
-
|
|
6088
|
+
13190
|
|
6089
6089
|
],
|
|
6090
6090
|
"SuperToken": [
|
|
6091
|
-
|
|
6091
|
+
31692
|
|
6092
6092
|
],
|
|
6093
6093
|
"SuperTokenFactory": [
|
|
6094
|
-
|
|
6094
|
+
32067
|
|
6095
6095
|
],
|
|
6096
6096
|
"SuperTokenFactoryHelper": [
|
|
6097
|
-
|
|
6097
|
+
32029
|
|
6098
6098
|
],
|
|
6099
6099
|
"Superfluid": [
|
|
6100
|
-
|
|
6100
|
+
34994
|
|
6101
6101
|
],
|
|
6102
6102
|
"SuperfluidFrameworkDeployer": [
|
|
6103
|
-
|
|
6103
|
+
37185
|
|
6104
6104
|
],
|
|
6105
6105
|
"TestGovernance": [
|
|
6106
|
-
|
|
6106
|
+
38269
|
|
6107
6107
|
],
|
|
6108
6108
|
"UUPSProxy": [
|
|
6109
|
-
|
|
6109
|
+
36375
|
|
6110
6110
|
]
|
|
6111
6111
|
},
|
|
6112
|
-
"id":
|
|
6112
|
+
"id": 37186,
|
|
6113
6113
|
"license": "AGPLv3",
|
|
6114
6114
|
"nodeType": "SourceUnit",
|
|
6115
6115
|
"nodes": [
|
|
6116
6116
|
{
|
|
6117
|
-
"id":
|
|
6117
|
+
"id": 36915,
|
|
6118
6118
|
"literals": [
|
|
6119
6119
|
"solidity",
|
|
6120
6120
|
"^",
|
|
@@ -6127,16 +6127,16 @@
|
|
|
6127
6127
|
{
|
|
6128
6128
|
"absolutePath": "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol",
|
|
6129
6129
|
"file": "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol",
|
|
6130
|
-
"id":
|
|
6130
|
+
"id": 36917,
|
|
6131
6131
|
"nameLocation": "-1:-1:-1",
|
|
6132
6132
|
"nodeType": "ImportDirective",
|
|
6133
|
-
"scope":
|
|
6133
|
+
"scope": 37186,
|
|
6134
6134
|
"sourceUnit": 1763,
|
|
6135
6135
|
"src": "60:112:104",
|
|
6136
6136
|
"symbolAliases": [
|
|
6137
6137
|
{
|
|
6138
6138
|
"foreign": {
|
|
6139
|
-
"id":
|
|
6139
|
+
"id": 36916,
|
|
6140
6140
|
"name": "ERC20PresetMinterPauser",
|
|
6141
6141
|
"nodeType": "Identifier",
|
|
6142
6142
|
"overloadedDeclarations": [],
|
|
@@ -6152,20 +6152,20 @@
|
|
|
6152
6152
|
{
|
|
6153
6153
|
"absolutePath": "project:/contracts/upgradability/UUPSProxy.sol",
|
|
6154
6154
|
"file": "../upgradability/UUPSProxy.sol",
|
|
6155
|
-
"id":
|
|
6155
|
+
"id": 36919,
|
|
6156
6156
|
"nameLocation": "-1:-1:-1",
|
|
6157
6157
|
"nodeType": "ImportDirective",
|
|
6158
|
-
"scope":
|
|
6159
|
-
"sourceUnit":
|
|
6158
|
+
"scope": 37186,
|
|
6159
|
+
"sourceUnit": 36376,
|
|
6160
6160
|
"src": "174:57:104",
|
|
6161
6161
|
"symbolAliases": [
|
|
6162
6162
|
{
|
|
6163
6163
|
"foreign": {
|
|
6164
|
-
"id":
|
|
6164
|
+
"id": 36918,
|
|
6165
6165
|
"name": "UUPSProxy",
|
|
6166
6166
|
"nodeType": "Identifier",
|
|
6167
6167
|
"overloadedDeclarations": [],
|
|
6168
|
-
"referencedDeclaration":
|
|
6168
|
+
"referencedDeclaration": 36375,
|
|
6169
6169
|
"src": "182:9:104",
|
|
6170
6170
|
"typeDescriptions": {}
|
|
6171
6171
|
},
|
|
@@ -6177,20 +6177,20 @@
|
|
|
6177
6177
|
{
|
|
6178
6178
|
"absolutePath": "project:/contracts/superfluid/Superfluid.sol",
|
|
6179
6179
|
"file": "../superfluid/Superfluid.sol",
|
|
6180
|
-
"id":
|
|
6180
|
+
"id": 36921,
|
|
6181
6181
|
"nameLocation": "-1:-1:-1",
|
|
6182
6182
|
"nodeType": "ImportDirective",
|
|
6183
|
-
"scope":
|
|
6184
|
-
"sourceUnit":
|
|
6183
|
+
"scope": 37186,
|
|
6184
|
+
"sourceUnit": 34995,
|
|
6185
6185
|
"src": "233:56:104",
|
|
6186
6186
|
"symbolAliases": [
|
|
6187
6187
|
{
|
|
6188
6188
|
"foreign": {
|
|
6189
|
-
"id":
|
|
6189
|
+
"id": 36920,
|
|
6190
6190
|
"name": "Superfluid",
|
|
6191
6191
|
"nodeType": "Identifier",
|
|
6192
6192
|
"overloadedDeclarations": [],
|
|
6193
|
-
"referencedDeclaration":
|
|
6193
|
+
"referencedDeclaration": 34994,
|
|
6194
6194
|
"src": "241:10:104",
|
|
6195
6195
|
"typeDescriptions": {}
|
|
6196
6196
|
},
|
|
@@ -6202,20 +6202,20 @@
|
|
|
6202
6202
|
{
|
|
6203
6203
|
"absolutePath": "project:/contracts/utils/TestGovernance.sol",
|
|
6204
6204
|
"file": "./TestGovernance.sol",
|
|
6205
|
-
"id":
|
|
6205
|
+
"id": 36923,
|
|
6206
6206
|
"nameLocation": "-1:-1:-1",
|
|
6207
6207
|
"nodeType": "ImportDirective",
|
|
6208
|
-
"scope":
|
|
6209
|
-
"sourceUnit":
|
|
6208
|
+
"scope": 37186,
|
|
6209
|
+
"sourceUnit": 38270,
|
|
6210
6210
|
"src": "290:52:104",
|
|
6211
6211
|
"symbolAliases": [
|
|
6212
6212
|
{
|
|
6213
6213
|
"foreign": {
|
|
6214
|
-
"id":
|
|
6214
|
+
"id": 36922,
|
|
6215
6215
|
"name": "TestGovernance",
|
|
6216
6216
|
"nodeType": "Identifier",
|
|
6217
6217
|
"overloadedDeclarations": [],
|
|
6218
|
-
"referencedDeclaration":
|
|
6218
|
+
"referencedDeclaration": 38269,
|
|
6219
6219
|
"src": "298:14:104",
|
|
6220
6220
|
"typeDescriptions": {}
|
|
6221
6221
|
},
|
|
@@ -6227,20 +6227,20 @@
|
|
|
6227
6227
|
{
|
|
6228
6228
|
"absolutePath": "project:/contracts/agreements/ConstantFlowAgreementV1.sol",
|
|
6229
6229
|
"file": "../agreements/ConstantFlowAgreementV1.sol",
|
|
6230
|
-
"id":
|
|
6230
|
+
"id": 36925,
|
|
6231
6231
|
"nameLocation": "-1:-1:-1",
|
|
6232
6232
|
"nodeType": "ImportDirective",
|
|
6233
|
-
"scope":
|
|
6234
|
-
"sourceUnit":
|
|
6233
|
+
"scope": 37186,
|
|
6234
|
+
"sourceUnit": 9803,
|
|
6235
6235
|
"src": "343:82:104",
|
|
6236
6236
|
"symbolAliases": [
|
|
6237
6237
|
{
|
|
6238
6238
|
"foreign": {
|
|
6239
|
-
"id":
|
|
6239
|
+
"id": 36924,
|
|
6240
6240
|
"name": "ConstantFlowAgreementV1",
|
|
6241
6241
|
"nodeType": "Identifier",
|
|
6242
6242
|
"overloadedDeclarations": [],
|
|
6243
|
-
"referencedDeclaration":
|
|
6243
|
+
"referencedDeclaration": 9802,
|
|
6244
6244
|
"src": "351:23:104",
|
|
6245
6245
|
"typeDescriptions": {}
|
|
6246
6246
|
},
|
|
@@ -6252,20 +6252,20 @@
|
|
|
6252
6252
|
{
|
|
6253
6253
|
"absolutePath": "project:/contracts/agreements/InstantDistributionAgreementV1.sol",
|
|
6254
6254
|
"file": "../agreements/InstantDistributionAgreementV1.sol",
|
|
6255
|
-
"id":
|
|
6255
|
+
"id": 36927,
|
|
6256
6256
|
"nameLocation": "-1:-1:-1",
|
|
6257
6257
|
"nodeType": "ImportDirective",
|
|
6258
|
-
"scope":
|
|
6259
|
-
"sourceUnit":
|
|
6258
|
+
"scope": 37186,
|
|
6259
|
+
"sourceUnit": 13191,
|
|
6260
6260
|
"src": "426:96:104",
|
|
6261
6261
|
"symbolAliases": [
|
|
6262
6262
|
{
|
|
6263
6263
|
"foreign": {
|
|
6264
|
-
"id":
|
|
6264
|
+
"id": 36926,
|
|
6265
6265
|
"name": "InstantDistributionAgreementV1",
|
|
6266
6266
|
"nodeType": "Identifier",
|
|
6267
6267
|
"overloadedDeclarations": [],
|
|
6268
|
-
"referencedDeclaration":
|
|
6268
|
+
"referencedDeclaration": 13190,
|
|
6269
6269
|
"src": "434:30:104",
|
|
6270
6270
|
"typeDescriptions": {}
|
|
6271
6271
|
},
|
|
@@ -6277,20 +6277,20 @@
|
|
|
6277
6277
|
{
|
|
6278
6278
|
"absolutePath": "project:/contracts/superfluid/SuperTokenFactory.sol",
|
|
6279
6279
|
"file": "../superfluid/SuperTokenFactory.sol",
|
|
6280
|
-
"id":
|
|
6280
|
+
"id": 36932,
|
|
6281
6281
|
"nameLocation": "-1:-1:-1",
|
|
6282
6282
|
"nodeType": "ImportDirective",
|
|
6283
|
-
"scope":
|
|
6284
|
-
"sourceUnit":
|
|
6283
|
+
"scope": 37186,
|
|
6284
|
+
"sourceUnit": 32068,
|
|
6285
6285
|
"src": "523:153:104",
|
|
6286
6286
|
"symbolAliases": [
|
|
6287
6287
|
{
|
|
6288
6288
|
"foreign": {
|
|
6289
|
-
"id":
|
|
6289
|
+
"id": 36928,
|
|
6290
6290
|
"name": "ISuperTokenFactory",
|
|
6291
6291
|
"nodeType": "Identifier",
|
|
6292
6292
|
"overloadedDeclarations": [],
|
|
6293
|
-
"referencedDeclaration":
|
|
6293
|
+
"referencedDeclaration": 18528,
|
|
6294
6294
|
"src": "536:18:104",
|
|
6295
6295
|
"typeDescriptions": {}
|
|
6296
6296
|
},
|
|
@@ -6298,11 +6298,11 @@
|
|
|
6298
6298
|
},
|
|
6299
6299
|
{
|
|
6300
6300
|
"foreign": {
|
|
6301
|
-
"id":
|
|
6301
|
+
"id": 36929,
|
|
6302
6302
|
"name": "SuperTokenFactory",
|
|
6303
6303
|
"nodeType": "Identifier",
|
|
6304
6304
|
"overloadedDeclarations": [],
|
|
6305
|
-
"referencedDeclaration":
|
|
6305
|
+
"referencedDeclaration": 32067,
|
|
6306
6306
|
"src": "560:17:104",
|
|
6307
6307
|
"typeDescriptions": {}
|
|
6308
6308
|
},
|
|
@@ -6310,11 +6310,11 @@
|
|
|
6310
6310
|
},
|
|
6311
6311
|
{
|
|
6312
6312
|
"foreign": {
|
|
6313
|
-
"id":
|
|
6313
|
+
"id": 36930,
|
|
6314
6314
|
"name": "SuperTokenFactoryHelper",
|
|
6315
6315
|
"nodeType": "Identifier",
|
|
6316
6316
|
"overloadedDeclarations": [],
|
|
6317
|
-
"referencedDeclaration":
|
|
6317
|
+
"referencedDeclaration": 32029,
|
|
6318
6318
|
"src": "583:23:104",
|
|
6319
6319
|
"typeDescriptions": {}
|
|
6320
6320
|
},
|
|
@@ -6322,11 +6322,11 @@
|
|
|
6322
6322
|
},
|
|
6323
6323
|
{
|
|
6324
6324
|
"foreign": {
|
|
6325
|
-
"id":
|
|
6325
|
+
"id": 36931,
|
|
6326
6326
|
"name": "ERC20WithTokenInfo",
|
|
6327
6327
|
"nodeType": "Identifier",
|
|
6328
6328
|
"overloadedDeclarations": [],
|
|
6329
|
-
"referencedDeclaration":
|
|
6329
|
+
"referencedDeclaration": 19411,
|
|
6330
6330
|
"src": "612:18:104",
|
|
6331
6331
|
"typeDescriptions": {}
|
|
6332
6332
|
},
|
|
@@ -6338,20 +6338,20 @@
|
|
|
6338
6338
|
{
|
|
6339
6339
|
"absolutePath": "project:/contracts/superfluid/SuperToken.sol",
|
|
6340
6340
|
"file": "../superfluid/SuperToken.sol",
|
|
6341
|
-
"id":
|
|
6341
|
+
"id": 36934,
|
|
6342
6342
|
"nameLocation": "-1:-1:-1",
|
|
6343
6343
|
"nodeType": "ImportDirective",
|
|
6344
|
-
"scope":
|
|
6345
|
-
"sourceUnit":
|
|
6344
|
+
"scope": 37186,
|
|
6345
|
+
"sourceUnit": 31693,
|
|
6346
6346
|
"src": "677:56:104",
|
|
6347
6347
|
"symbolAliases": [
|
|
6348
6348
|
{
|
|
6349
6349
|
"foreign": {
|
|
6350
|
-
"id":
|
|
6350
|
+
"id": 36933,
|
|
6351
6351
|
"name": "SuperToken",
|
|
6352
6352
|
"nodeType": "Identifier",
|
|
6353
6353
|
"overloadedDeclarations": [],
|
|
6354
|
-
"referencedDeclaration":
|
|
6354
|
+
"referencedDeclaration": 31692,
|
|
6355
6355
|
"src": "685:10:104",
|
|
6356
6356
|
"typeDescriptions": {}
|
|
6357
6357
|
},
|
|
@@ -6366,24 +6366,24 @@
|
|
|
6366
6366
|
"canonicalName": "SuperfluidFrameworkDeployer",
|
|
6367
6367
|
"contractDependencies": [
|
|
6368
6368
|
1762,
|
|
6369
|
-
|
|
6370
|
-
|
|
6371
|
-
|
|
6372
|
-
|
|
6373
|
-
|
|
6374
|
-
|
|
6369
|
+
9802,
|
|
6370
|
+
13190,
|
|
6371
|
+
32029,
|
|
6372
|
+
32067,
|
|
6373
|
+
34994,
|
|
6374
|
+
38269
|
|
6375
6375
|
],
|
|
6376
6376
|
"contractKind": "contract",
|
|
6377
6377
|
"documentation": {
|
|
6378
|
-
"id":
|
|
6378
|
+
"id": 36935,
|
|
6379
6379
|
"nodeType": "StructuredDocumentation",
|
|
6380
6380
|
"src": "736:124:104",
|
|
6381
6381
|
"text": "@title Superfluid Framework Deployer\n @notice This is NOT for deploying public nets, but rather only for tesing envs"
|
|
6382
6382
|
},
|
|
6383
6383
|
"fullyImplemented": true,
|
|
6384
|
-
"id":
|
|
6384
|
+
"id": 37185,
|
|
6385
6385
|
"linearizedBaseContracts": [
|
|
6386
|
-
|
|
6386
|
+
37185
|
|
6387
6387
|
],
|
|
6388
6388
|
"name": "SuperfluidFrameworkDeployer",
|
|
6389
6389
|
"nameLocation": "869:27:104",
|
|
@@ -6391,33 +6391,33 @@
|
|
|
6391
6391
|
"nodes": [
|
|
6392
6392
|
{
|
|
6393
6393
|
"constant": false,
|
|
6394
|
-
"id":
|
|
6394
|
+
"id": 36938,
|
|
6395
6395
|
"mutability": "mutable",
|
|
6396
6396
|
"name": "governance",
|
|
6397
6397
|
"nameLocation": "928:10:104",
|
|
6398
6398
|
"nodeType": "VariableDeclaration",
|
|
6399
|
-
"scope":
|
|
6399
|
+
"scope": 37185,
|
|
6400
6400
|
"src": "904:34:104",
|
|
6401
6401
|
"stateVariable": true,
|
|
6402
6402
|
"storageLocation": "default",
|
|
6403
6403
|
"typeDescriptions": {
|
|
6404
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
6404
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
6405
6405
|
"typeString": "contract TestGovernance"
|
|
6406
6406
|
},
|
|
6407
6407
|
"typeName": {
|
|
6408
|
-
"id":
|
|
6408
|
+
"id": 36937,
|
|
6409
6409
|
"nodeType": "UserDefinedTypeName",
|
|
6410
6410
|
"pathNode": {
|
|
6411
|
-
"id":
|
|
6411
|
+
"id": 36936,
|
|
6412
6412
|
"name": "TestGovernance",
|
|
6413
6413
|
"nodeType": "IdentifierPath",
|
|
6414
|
-
"referencedDeclaration":
|
|
6414
|
+
"referencedDeclaration": 38269,
|
|
6415
6415
|
"src": "904:14:104"
|
|
6416
6416
|
},
|
|
6417
|
-
"referencedDeclaration":
|
|
6417
|
+
"referencedDeclaration": 38269,
|
|
6418
6418
|
"src": "904:14:104",
|
|
6419
6419
|
"typeDescriptions": {
|
|
6420
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
6420
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
6421
6421
|
"typeString": "contract TestGovernance"
|
|
6422
6422
|
}
|
|
6423
6423
|
},
|
|
@@ -6425,33 +6425,33 @@
|
|
|
6425
6425
|
},
|
|
6426
6426
|
{
|
|
6427
6427
|
"constant": false,
|
|
6428
|
-
"id":
|
|
6428
|
+
"id": 36941,
|
|
6429
6429
|
"mutability": "mutable",
|
|
6430
6430
|
"name": "host",
|
|
6431
6431
|
"nameLocation": "964:4:104",
|
|
6432
6432
|
"nodeType": "VariableDeclaration",
|
|
6433
|
-
"scope":
|
|
6433
|
+
"scope": 37185,
|
|
6434
6434
|
"src": "944:24:104",
|
|
6435
6435
|
"stateVariable": true,
|
|
6436
6436
|
"storageLocation": "default",
|
|
6437
6437
|
"typeDescriptions": {
|
|
6438
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
6438
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
6439
6439
|
"typeString": "contract Superfluid"
|
|
6440
6440
|
},
|
|
6441
6441
|
"typeName": {
|
|
6442
|
-
"id":
|
|
6442
|
+
"id": 36940,
|
|
6443
6443
|
"nodeType": "UserDefinedTypeName",
|
|
6444
6444
|
"pathNode": {
|
|
6445
|
-
"id":
|
|
6445
|
+
"id": 36939,
|
|
6446
6446
|
"name": "Superfluid",
|
|
6447
6447
|
"nodeType": "IdentifierPath",
|
|
6448
|
-
"referencedDeclaration":
|
|
6448
|
+
"referencedDeclaration": 34994,
|
|
6449
6449
|
"src": "944:10:104"
|
|
6450
6450
|
},
|
|
6451
|
-
"referencedDeclaration":
|
|
6451
|
+
"referencedDeclaration": 34994,
|
|
6452
6452
|
"src": "944:10:104",
|
|
6453
6453
|
"typeDescriptions": {
|
|
6454
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
6454
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
6455
6455
|
"typeString": "contract Superfluid"
|
|
6456
6456
|
}
|
|
6457
6457
|
},
|
|
@@ -6459,33 +6459,33 @@
|
|
|
6459
6459
|
},
|
|
6460
6460
|
{
|
|
6461
6461
|
"constant": false,
|
|
6462
|
-
"id":
|
|
6462
|
+
"id": 36944,
|
|
6463
6463
|
"mutability": "mutable",
|
|
6464
6464
|
"name": "cfa",
|
|
6465
6465
|
"nameLocation": "1007:3:104",
|
|
6466
6466
|
"nodeType": "VariableDeclaration",
|
|
6467
|
-
"scope":
|
|
6467
|
+
"scope": 37185,
|
|
6468
6468
|
"src": "974:36:104",
|
|
6469
6469
|
"stateVariable": true,
|
|
6470
6470
|
"storageLocation": "default",
|
|
6471
6471
|
"typeDescriptions": {
|
|
6472
|
-
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$
|
|
6472
|
+
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$9802",
|
|
6473
6473
|
"typeString": "contract ConstantFlowAgreementV1"
|
|
6474
6474
|
},
|
|
6475
6475
|
"typeName": {
|
|
6476
|
-
"id":
|
|
6476
|
+
"id": 36943,
|
|
6477
6477
|
"nodeType": "UserDefinedTypeName",
|
|
6478
6478
|
"pathNode": {
|
|
6479
|
-
"id":
|
|
6479
|
+
"id": 36942,
|
|
6480
6480
|
"name": "ConstantFlowAgreementV1",
|
|
6481
6481
|
"nodeType": "IdentifierPath",
|
|
6482
|
-
"referencedDeclaration":
|
|
6482
|
+
"referencedDeclaration": 9802,
|
|
6483
6483
|
"src": "974:23:104"
|
|
6484
6484
|
},
|
|
6485
|
-
"referencedDeclaration":
|
|
6485
|
+
"referencedDeclaration": 9802,
|
|
6486
6486
|
"src": "974:23:104",
|
|
6487
6487
|
"typeDescriptions": {
|
|
6488
|
-
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$
|
|
6488
|
+
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$9802",
|
|
6489
6489
|
"typeString": "contract ConstantFlowAgreementV1"
|
|
6490
6490
|
}
|
|
6491
6491
|
},
|
|
@@ -6493,33 +6493,33 @@
|
|
|
6493
6493
|
},
|
|
6494
6494
|
{
|
|
6495
6495
|
"constant": false,
|
|
6496
|
-
"id":
|
|
6496
|
+
"id": 36947,
|
|
6497
6497
|
"mutability": "mutable",
|
|
6498
6498
|
"name": "ida",
|
|
6499
6499
|
"nameLocation": "1056:3:104",
|
|
6500
6500
|
"nodeType": "VariableDeclaration",
|
|
6501
|
-
"scope":
|
|
6501
|
+
"scope": 37185,
|
|
6502
6502
|
"src": "1016:43:104",
|
|
6503
6503
|
"stateVariable": true,
|
|
6504
6504
|
"storageLocation": "default",
|
|
6505
6505
|
"typeDescriptions": {
|
|
6506
|
-
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$
|
|
6506
|
+
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$13190",
|
|
6507
6507
|
"typeString": "contract InstantDistributionAgreementV1"
|
|
6508
6508
|
},
|
|
6509
6509
|
"typeName": {
|
|
6510
|
-
"id":
|
|
6510
|
+
"id": 36946,
|
|
6511
6511
|
"nodeType": "UserDefinedTypeName",
|
|
6512
6512
|
"pathNode": {
|
|
6513
|
-
"id":
|
|
6513
|
+
"id": 36945,
|
|
6514
6514
|
"name": "InstantDistributionAgreementV1",
|
|
6515
6515
|
"nodeType": "IdentifierPath",
|
|
6516
|
-
"referencedDeclaration":
|
|
6516
|
+
"referencedDeclaration": 13190,
|
|
6517
6517
|
"src": "1016:30:104"
|
|
6518
6518
|
},
|
|
6519
|
-
"referencedDeclaration":
|
|
6519
|
+
"referencedDeclaration": 13190,
|
|
6520
6520
|
"src": "1016:30:104",
|
|
6521
6521
|
"typeDescriptions": {
|
|
6522
|
-
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$
|
|
6522
|
+
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$13190",
|
|
6523
6523
|
"typeString": "contract InstantDistributionAgreementV1"
|
|
6524
6524
|
}
|
|
6525
6525
|
},
|
|
@@ -6527,33 +6527,33 @@
|
|
|
6527
6527
|
},
|
|
6528
6528
|
{
|
|
6529
6529
|
"constant": false,
|
|
6530
|
-
"id":
|
|
6530
|
+
"id": 36950,
|
|
6531
6531
|
"mutability": "mutable",
|
|
6532
6532
|
"name": "superTokenFactoryHelper",
|
|
6533
6533
|
"nameLocation": "1098:23:104",
|
|
6534
6534
|
"nodeType": "VariableDeclaration",
|
|
6535
|
-
"scope":
|
|
6535
|
+
"scope": 37185,
|
|
6536
6536
|
"src": "1065:56:104",
|
|
6537
6537
|
"stateVariable": true,
|
|
6538
6538
|
"storageLocation": "default",
|
|
6539
6539
|
"typeDescriptions": {
|
|
6540
|
-
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$
|
|
6540
|
+
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$32029",
|
|
6541
6541
|
"typeString": "contract SuperTokenFactoryHelper"
|
|
6542
6542
|
},
|
|
6543
6543
|
"typeName": {
|
|
6544
|
-
"id":
|
|
6544
|
+
"id": 36949,
|
|
6545
6545
|
"nodeType": "UserDefinedTypeName",
|
|
6546
6546
|
"pathNode": {
|
|
6547
|
-
"id":
|
|
6547
|
+
"id": 36948,
|
|
6548
6548
|
"name": "SuperTokenFactoryHelper",
|
|
6549
6549
|
"nodeType": "IdentifierPath",
|
|
6550
|
-
"referencedDeclaration":
|
|
6550
|
+
"referencedDeclaration": 32029,
|
|
6551
6551
|
"src": "1065:23:104"
|
|
6552
6552
|
},
|
|
6553
|
-
"referencedDeclaration":
|
|
6553
|
+
"referencedDeclaration": 32029,
|
|
6554
6554
|
"src": "1065:23:104",
|
|
6555
6555
|
"typeDescriptions": {
|
|
6556
|
-
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$
|
|
6556
|
+
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$32029",
|
|
6557
6557
|
"typeString": "contract SuperTokenFactoryHelper"
|
|
6558
6558
|
}
|
|
6559
6559
|
},
|
|
@@ -6561,33 +6561,33 @@
|
|
|
6561
6561
|
},
|
|
6562
6562
|
{
|
|
6563
6563
|
"constant": false,
|
|
6564
|
-
"id":
|
|
6564
|
+
"id": 36953,
|
|
6565
6565
|
"mutability": "mutable",
|
|
6566
6566
|
"name": "superTokenFactory",
|
|
6567
6567
|
"nameLocation": "1154:17:104",
|
|
6568
6568
|
"nodeType": "VariableDeclaration",
|
|
6569
|
-
"scope":
|
|
6569
|
+
"scope": 37185,
|
|
6570
6570
|
"src": "1127:44:104",
|
|
6571
6571
|
"stateVariable": true,
|
|
6572
6572
|
"storageLocation": "default",
|
|
6573
6573
|
"typeDescriptions": {
|
|
6574
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
6574
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
6575
6575
|
"typeString": "contract SuperTokenFactory"
|
|
6576
6576
|
},
|
|
6577
6577
|
"typeName": {
|
|
6578
|
-
"id":
|
|
6578
|
+
"id": 36952,
|
|
6579
6579
|
"nodeType": "UserDefinedTypeName",
|
|
6580
6580
|
"pathNode": {
|
|
6581
|
-
"id":
|
|
6581
|
+
"id": 36951,
|
|
6582
6582
|
"name": "SuperTokenFactory",
|
|
6583
6583
|
"nodeType": "IdentifierPath",
|
|
6584
|
-
"referencedDeclaration":
|
|
6584
|
+
"referencedDeclaration": 32067,
|
|
6585
6585
|
"src": "1127:17:104"
|
|
6586
6586
|
},
|
|
6587
|
-
"referencedDeclaration":
|
|
6587
|
+
"referencedDeclaration": 32067,
|
|
6588
6588
|
"src": "1127:17:104",
|
|
6589
6589
|
"typeDescriptions": {
|
|
6590
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
6590
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
6591
6591
|
"typeString": "contract SuperTokenFactory"
|
|
6592
6592
|
}
|
|
6593
6593
|
},
|
|
@@ -6595,26 +6595,26 @@
|
|
|
6595
6595
|
},
|
|
6596
6596
|
{
|
|
6597
6597
|
"body": {
|
|
6598
|
-
"id":
|
|
6598
|
+
"id": 37074,
|
|
6599
6599
|
"nodeType": "Block",
|
|
6600
6600
|
"src": "1239:2019:104",
|
|
6601
6601
|
"statements": [
|
|
6602
6602
|
{
|
|
6603
6603
|
"expression": {
|
|
6604
|
-
"id":
|
|
6604
|
+
"id": 36962,
|
|
6605
6605
|
"isConstant": false,
|
|
6606
6606
|
"isLValue": false,
|
|
6607
6607
|
"isPure": false,
|
|
6608
6608
|
"lValueRequested": false,
|
|
6609
6609
|
"leftHandSide": {
|
|
6610
|
-
"id":
|
|
6610
|
+
"id": 36957,
|
|
6611
6611
|
"name": "governance",
|
|
6612
6612
|
"nodeType": "Identifier",
|
|
6613
6613
|
"overloadedDeclarations": [],
|
|
6614
|
-
"referencedDeclaration":
|
|
6614
|
+
"referencedDeclaration": 36938,
|
|
6615
6615
|
"src": "1834:10:104",
|
|
6616
6616
|
"typeDescriptions": {
|
|
6617
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
6617
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
6618
6618
|
"typeString": "contract TestGovernance"
|
|
6619
6619
|
}
|
|
6620
6620
|
},
|
|
@@ -6624,7 +6624,7 @@
|
|
|
6624
6624
|
"arguments": [],
|
|
6625
6625
|
"expression": {
|
|
6626
6626
|
"argumentTypes": [],
|
|
6627
|
-
"id":
|
|
6627
|
+
"id": 36960,
|
|
6628
6628
|
"isConstant": false,
|
|
6629
6629
|
"isLValue": false,
|
|
6630
6630
|
"isPure": false,
|
|
@@ -6632,28 +6632,28 @@
|
|
|
6632
6632
|
"nodeType": "NewExpression",
|
|
6633
6633
|
"src": "1847:18:104",
|
|
6634
6634
|
"typeDescriptions": {
|
|
6635
|
-
"typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_TestGovernance_$
|
|
6635
|
+
"typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_TestGovernance_$38269_$",
|
|
6636
6636
|
"typeString": "function () returns (contract TestGovernance)"
|
|
6637
6637
|
},
|
|
6638
6638
|
"typeName": {
|
|
6639
|
-
"id":
|
|
6639
|
+
"id": 36959,
|
|
6640
6640
|
"nodeType": "UserDefinedTypeName",
|
|
6641
6641
|
"pathNode": {
|
|
6642
|
-
"id":
|
|
6642
|
+
"id": 36958,
|
|
6643
6643
|
"name": "TestGovernance",
|
|
6644
6644
|
"nodeType": "IdentifierPath",
|
|
6645
|
-
"referencedDeclaration":
|
|
6645
|
+
"referencedDeclaration": 38269,
|
|
6646
6646
|
"src": "1851:14:104"
|
|
6647
6647
|
},
|
|
6648
|
-
"referencedDeclaration":
|
|
6648
|
+
"referencedDeclaration": 38269,
|
|
6649
6649
|
"src": "1851:14:104",
|
|
6650
6650
|
"typeDescriptions": {
|
|
6651
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
6651
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
6652
6652
|
"typeString": "contract TestGovernance"
|
|
6653
6653
|
}
|
|
6654
6654
|
}
|
|
6655
6655
|
},
|
|
6656
|
-
"id":
|
|
6656
|
+
"id": 36961,
|
|
6657
6657
|
"isConstant": false,
|
|
6658
6658
|
"isLValue": false,
|
|
6659
6659
|
"isPure": false,
|
|
@@ -6664,36 +6664,36 @@
|
|
|
6664
6664
|
"src": "1847:20:104",
|
|
6665
6665
|
"tryCall": false,
|
|
6666
6666
|
"typeDescriptions": {
|
|
6667
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
6667
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
6668
6668
|
"typeString": "contract TestGovernance"
|
|
6669
6669
|
}
|
|
6670
6670
|
},
|
|
6671
6671
|
"src": "1834:33:104",
|
|
6672
6672
|
"typeDescriptions": {
|
|
6673
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
6673
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
6674
6674
|
"typeString": "contract TestGovernance"
|
|
6675
6675
|
}
|
|
6676
6676
|
},
|
|
6677
|
-
"id":
|
|
6677
|
+
"id": 36963,
|
|
6678
6678
|
"nodeType": "ExpressionStatement",
|
|
6679
6679
|
"src": "1834:33:104"
|
|
6680
6680
|
},
|
|
6681
6681
|
{
|
|
6682
6682
|
"expression": {
|
|
6683
|
-
"id":
|
|
6683
|
+
"id": 36971,
|
|
6684
6684
|
"isConstant": false,
|
|
6685
6685
|
"isLValue": false,
|
|
6686
6686
|
"isPure": false,
|
|
6687
6687
|
"lValueRequested": false,
|
|
6688
6688
|
"leftHandSide": {
|
|
6689
|
-
"id":
|
|
6689
|
+
"id": 36964,
|
|
6690
6690
|
"name": "host",
|
|
6691
6691
|
"nodeType": "Identifier",
|
|
6692
6692
|
"overloadedDeclarations": [],
|
|
6693
|
-
"referencedDeclaration":
|
|
6693
|
+
"referencedDeclaration": 36941,
|
|
6694
6694
|
"src": "1907:4:104",
|
|
6695
6695
|
"typeDescriptions": {
|
|
6696
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
6696
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
6697
6697
|
"typeString": "contract Superfluid"
|
|
6698
6698
|
}
|
|
6699
6699
|
},
|
|
@@ -6703,7 +6703,7 @@
|
|
|
6703
6703
|
"arguments": [
|
|
6704
6704
|
{
|
|
6705
6705
|
"hexValue": "74727565",
|
|
6706
|
-
"id":
|
|
6706
|
+
"id": 36968,
|
|
6707
6707
|
"isConstant": false,
|
|
6708
6708
|
"isLValue": false,
|
|
6709
6709
|
"isPure": true,
|
|
@@ -6719,7 +6719,7 @@
|
|
|
6719
6719
|
},
|
|
6720
6720
|
{
|
|
6721
6721
|
"hexValue": "66616c7365",
|
|
6722
|
-
"id":
|
|
6722
|
+
"id": 36969,
|
|
6723
6723
|
"isConstant": false,
|
|
6724
6724
|
"isLValue": false,
|
|
6725
6725
|
"isPure": true,
|
|
@@ -6745,7 +6745,7 @@
|
|
|
6745
6745
|
"typeString": "bool"
|
|
6746
6746
|
}
|
|
6747
6747
|
],
|
|
6748
|
-
"id":
|
|
6748
|
+
"id": 36967,
|
|
6749
6749
|
"isConstant": false,
|
|
6750
6750
|
"isLValue": false,
|
|
6751
6751
|
"isPure": false,
|
|
@@ -6753,28 +6753,28 @@
|
|
|
6753
6753
|
"nodeType": "NewExpression",
|
|
6754
6754
|
"src": "1914:14:104",
|
|
6755
6755
|
"typeDescriptions": {
|
|
6756
|
-
"typeIdentifier": "t_function_creation_nonpayable$_t_bool_$_t_bool_$returns$_t_contract$_Superfluid_$
|
|
6756
|
+
"typeIdentifier": "t_function_creation_nonpayable$_t_bool_$_t_bool_$returns$_t_contract$_Superfluid_$34994_$",
|
|
6757
6757
|
"typeString": "function (bool,bool) returns (contract Superfluid)"
|
|
6758
6758
|
},
|
|
6759
6759
|
"typeName": {
|
|
6760
|
-
"id":
|
|
6760
|
+
"id": 36966,
|
|
6761
6761
|
"nodeType": "UserDefinedTypeName",
|
|
6762
6762
|
"pathNode": {
|
|
6763
|
-
"id":
|
|
6763
|
+
"id": 36965,
|
|
6764
6764
|
"name": "Superfluid",
|
|
6765
6765
|
"nodeType": "IdentifierPath",
|
|
6766
|
-
"referencedDeclaration":
|
|
6766
|
+
"referencedDeclaration": 34994,
|
|
6767
6767
|
"src": "1918:10:104"
|
|
6768
6768
|
},
|
|
6769
|
-
"referencedDeclaration":
|
|
6769
|
+
"referencedDeclaration": 34994,
|
|
6770
6770
|
"src": "1918:10:104",
|
|
6771
6771
|
"typeDescriptions": {
|
|
6772
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
6772
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
6773
6773
|
"typeString": "contract Superfluid"
|
|
6774
6774
|
}
|
|
6775
6775
|
}
|
|
6776
6776
|
},
|
|
6777
|
-
"id":
|
|
6777
|
+
"id": 36970,
|
|
6778
6778
|
"isConstant": false,
|
|
6779
6779
|
"isLValue": false,
|
|
6780
6780
|
"isPure": false,
|
|
@@ -6785,17 +6785,17 @@
|
|
|
6785
6785
|
"src": "1914:27:104",
|
|
6786
6786
|
"tryCall": false,
|
|
6787
6787
|
"typeDescriptions": {
|
|
6788
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
6788
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
6789
6789
|
"typeString": "contract Superfluid"
|
|
6790
6790
|
}
|
|
6791
6791
|
},
|
|
6792
6792
|
"src": "1907:34:104",
|
|
6793
6793
|
"typeDescriptions": {
|
|
6794
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
6794
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
6795
6795
|
"typeString": "contract Superfluid"
|
|
6796
6796
|
}
|
|
6797
6797
|
},
|
|
6798
|
-
"id":
|
|
6798
|
+
"id": 36972,
|
|
6799
6799
|
"nodeType": "ExpressionStatement",
|
|
6800
6800
|
"src": "1907:34:104"
|
|
6801
6801
|
},
|
|
@@ -6803,14 +6803,14 @@
|
|
|
6803
6803
|
"expression": {
|
|
6804
6804
|
"arguments": [
|
|
6805
6805
|
{
|
|
6806
|
-
"id":
|
|
6806
|
+
"id": 36976,
|
|
6807
6807
|
"name": "governance",
|
|
6808
6808
|
"nodeType": "Identifier",
|
|
6809
6809
|
"overloadedDeclarations": [],
|
|
6810
|
-
"referencedDeclaration":
|
|
6810
|
+
"referencedDeclaration": 36938,
|
|
6811
6811
|
"src": "2025:10:104",
|
|
6812
6812
|
"typeDescriptions": {
|
|
6813
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
6813
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
6814
6814
|
"typeString": "contract TestGovernance"
|
|
6815
6815
|
}
|
|
6816
6816
|
}
|
|
@@ -6818,37 +6818,37 @@
|
|
|
6818
6818
|
"expression": {
|
|
6819
6819
|
"argumentTypes": [
|
|
6820
6820
|
{
|
|
6821
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
6821
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
6822
6822
|
"typeString": "contract TestGovernance"
|
|
6823
6823
|
}
|
|
6824
6824
|
],
|
|
6825
6825
|
"expression": {
|
|
6826
|
-
"id":
|
|
6826
|
+
"id": 36973,
|
|
6827
6827
|
"name": "host",
|
|
6828
6828
|
"nodeType": "Identifier",
|
|
6829
6829
|
"overloadedDeclarations": [],
|
|
6830
|
-
"referencedDeclaration":
|
|
6830
|
+
"referencedDeclaration": 36941,
|
|
6831
6831
|
"src": "2009:4:104",
|
|
6832
6832
|
"typeDescriptions": {
|
|
6833
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
6833
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
6834
6834
|
"typeString": "contract Superfluid"
|
|
6835
6835
|
}
|
|
6836
6836
|
},
|
|
6837
|
-
"id":
|
|
6837
|
+
"id": 36975,
|
|
6838
6838
|
"isConstant": false,
|
|
6839
6839
|
"isLValue": false,
|
|
6840
6840
|
"isPure": false,
|
|
6841
6841
|
"lValueRequested": false,
|
|
6842
6842
|
"memberName": "initialize",
|
|
6843
6843
|
"nodeType": "MemberAccess",
|
|
6844
|
-
"referencedDeclaration":
|
|
6844
|
+
"referencedDeclaration": 32187,
|
|
6845
6845
|
"src": "2009:15:104",
|
|
6846
6846
|
"typeDescriptions": {
|
|
6847
|
-
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluidGovernance_$
|
|
6847
|
+
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluidGovernance_$19125_$returns$__$",
|
|
6848
6848
|
"typeString": "function (contract ISuperfluidGovernance) external"
|
|
6849
6849
|
}
|
|
6850
6850
|
},
|
|
6851
|
-
"id":
|
|
6851
|
+
"id": 36977,
|
|
6852
6852
|
"isConstant": false,
|
|
6853
6853
|
"isLValue": false,
|
|
6854
6854
|
"isPure": false,
|
|
@@ -6863,23 +6863,23 @@
|
|
|
6863
6863
|
"typeString": "tuple()"
|
|
6864
6864
|
}
|
|
6865
6865
|
},
|
|
6866
|
-
"id":
|
|
6866
|
+
"id": 36978,
|
|
6867
6867
|
"nodeType": "ExpressionStatement",
|
|
6868
6868
|
"src": "2009:27:104"
|
|
6869
6869
|
},
|
|
6870
6870
|
{
|
|
6871
6871
|
"assignments": [
|
|
6872
|
-
|
|
6872
|
+
36983
|
|
6873
6873
|
],
|
|
6874
6874
|
"declarations": [
|
|
6875
6875
|
{
|
|
6876
6876
|
"constant": false,
|
|
6877
|
-
"id":
|
|
6877
|
+
"id": 36983,
|
|
6878
6878
|
"mutability": "mutable",
|
|
6879
6879
|
"name": "trustedForarders",
|
|
6880
6880
|
"nameLocation": "2097:16:104",
|
|
6881
6881
|
"nodeType": "VariableDeclaration",
|
|
6882
|
-
"scope":
|
|
6882
|
+
"scope": 37074,
|
|
6883
6883
|
"src": "2080:33:104",
|
|
6884
6884
|
"stateVariable": false,
|
|
6885
6885
|
"storageLocation": "memory",
|
|
@@ -6889,7 +6889,7 @@
|
|
|
6889
6889
|
},
|
|
6890
6890
|
"typeName": {
|
|
6891
6891
|
"baseType": {
|
|
6892
|
-
"id":
|
|
6892
|
+
"id": 36981,
|
|
6893
6893
|
"name": "address",
|
|
6894
6894
|
"nodeType": "ElementaryTypeName",
|
|
6895
6895
|
"src": "2080:7:104",
|
|
@@ -6898,7 +6898,7 @@
|
|
|
6898
6898
|
"typeString": "address"
|
|
6899
6899
|
}
|
|
6900
6900
|
},
|
|
6901
|
-
"id":
|
|
6901
|
+
"id": 36982,
|
|
6902
6902
|
"nodeType": "ArrayTypeName",
|
|
6903
6903
|
"src": "2080:9:104",
|
|
6904
6904
|
"typeDescriptions": {
|
|
@@ -6909,12 +6909,12 @@
|
|
|
6909
6909
|
"visibility": "internal"
|
|
6910
6910
|
}
|
|
6911
6911
|
],
|
|
6912
|
-
"id":
|
|
6912
|
+
"id": 36989,
|
|
6913
6913
|
"initialValue": {
|
|
6914
6914
|
"arguments": [
|
|
6915
6915
|
{
|
|
6916
6916
|
"hexValue": "30",
|
|
6917
|
-
"id":
|
|
6917
|
+
"id": 36987,
|
|
6918
6918
|
"isConstant": false,
|
|
6919
6919
|
"isLValue": false,
|
|
6920
6920
|
"isPure": true,
|
|
@@ -6936,7 +6936,7 @@
|
|
|
6936
6936
|
"typeString": "int_const 0"
|
|
6937
6937
|
}
|
|
6938
6938
|
],
|
|
6939
|
-
"id":
|
|
6939
|
+
"id": 36986,
|
|
6940
6940
|
"isConstant": false,
|
|
6941
6941
|
"isLValue": false,
|
|
6942
6942
|
"isPure": true,
|
|
@@ -6949,7 +6949,7 @@
|
|
|
6949
6949
|
},
|
|
6950
6950
|
"typeName": {
|
|
6951
6951
|
"baseType": {
|
|
6952
|
-
"id":
|
|
6952
|
+
"id": 36984,
|
|
6953
6953
|
"name": "address",
|
|
6954
6954
|
"nodeType": "ElementaryTypeName",
|
|
6955
6955
|
"src": "2120:7:104",
|
|
@@ -6959,7 +6959,7 @@
|
|
|
6959
6959
|
"typeString": "address"
|
|
6960
6960
|
}
|
|
6961
6961
|
},
|
|
6962
|
-
"id":
|
|
6962
|
+
"id": 36985,
|
|
6963
6963
|
"nodeType": "ArrayTypeName",
|
|
6964
6964
|
"src": "2120:9:104",
|
|
6965
6965
|
"typeDescriptions": {
|
|
@@ -6968,7 +6968,7 @@
|
|
|
6968
6968
|
}
|
|
6969
6969
|
}
|
|
6970
6970
|
},
|
|
6971
|
-
"id":
|
|
6971
|
+
"id": 36988,
|
|
6972
6972
|
"isConstant": false,
|
|
6973
6973
|
"isLValue": false,
|
|
6974
6974
|
"isPure": true,
|
|
@@ -6990,14 +6990,14 @@
|
|
|
6990
6990
|
"expression": {
|
|
6991
6991
|
"arguments": [
|
|
6992
6992
|
{
|
|
6993
|
-
"id":
|
|
6993
|
+
"id": 36993,
|
|
6994
6994
|
"name": "host",
|
|
6995
6995
|
"nodeType": "Identifier",
|
|
6996
6996
|
"overloadedDeclarations": [],
|
|
6997
|
-
"referencedDeclaration":
|
|
6997
|
+
"referencedDeclaration": 36941,
|
|
6998
6998
|
"src": "2177:4:104",
|
|
6999
6999
|
"typeDescriptions": {
|
|
7000
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7000
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7001
7001
|
"typeString": "contract Superfluid"
|
|
7002
7002
|
}
|
|
7003
7003
|
},
|
|
@@ -7005,7 +7005,7 @@
|
|
|
7005
7005
|
"arguments": [
|
|
7006
7006
|
{
|
|
7007
7007
|
"hexValue": "3639",
|
|
7008
|
-
"id":
|
|
7008
|
+
"id": 36996,
|
|
7009
7009
|
"isConstant": false,
|
|
7010
7010
|
"isLValue": false,
|
|
7011
7011
|
"isPure": true,
|
|
@@ -7027,7 +7027,7 @@
|
|
|
7027
7027
|
"typeString": "int_const 69"
|
|
7028
7028
|
}
|
|
7029
7029
|
],
|
|
7030
|
-
"id":
|
|
7030
|
+
"id": 36995,
|
|
7031
7031
|
"isConstant": false,
|
|
7032
7032
|
"isLValue": false,
|
|
7033
7033
|
"isPure": true,
|
|
@@ -7039,14 +7039,14 @@
|
|
|
7039
7039
|
"typeString": "type(address)"
|
|
7040
7040
|
},
|
|
7041
7041
|
"typeName": {
|
|
7042
|
-
"id":
|
|
7042
|
+
"id": 36994,
|
|
7043
7043
|
"name": "address",
|
|
7044
7044
|
"nodeType": "ElementaryTypeName",
|
|
7045
7045
|
"src": "2195:7:104",
|
|
7046
7046
|
"typeDescriptions": {}
|
|
7047
7047
|
}
|
|
7048
7048
|
},
|
|
7049
|
-
"id":
|
|
7049
|
+
"id": 36997,
|
|
7050
7050
|
"isConstant": false,
|
|
7051
7051
|
"isLValue": false,
|
|
7052
7052
|
"isPure": true,
|
|
@@ -7063,7 +7063,7 @@
|
|
|
7063
7063
|
},
|
|
7064
7064
|
{
|
|
7065
7065
|
"hexValue": "34",
|
|
7066
|
-
"id":
|
|
7066
|
+
"id": 36998,
|
|
7067
7067
|
"isConstant": false,
|
|
7068
7068
|
"isLValue": false,
|
|
7069
7069
|
"isPure": true,
|
|
@@ -7080,7 +7080,7 @@
|
|
|
7080
7080
|
},
|
|
7081
7081
|
{
|
|
7082
7082
|
"hexValue": "3330",
|
|
7083
|
-
"id":
|
|
7083
|
+
"id": 36999,
|
|
7084
7084
|
"isConstant": false,
|
|
7085
7085
|
"isLValue": false,
|
|
7086
7086
|
"isPure": true,
|
|
@@ -7096,11 +7096,11 @@
|
|
|
7096
7096
|
"value": "30"
|
|
7097
7097
|
},
|
|
7098
7098
|
{
|
|
7099
|
-
"id":
|
|
7099
|
+
"id": 37000,
|
|
7100
7100
|
"name": "trustedForarders",
|
|
7101
7101
|
"nodeType": "Identifier",
|
|
7102
7102
|
"overloadedDeclarations": [],
|
|
7103
|
-
"referencedDeclaration":
|
|
7103
|
+
"referencedDeclaration": 36983,
|
|
7104
7104
|
"src": "2265:16:104",
|
|
7105
7105
|
"typeDescriptions": {
|
|
7106
7106
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
@@ -7111,7 +7111,7 @@
|
|
|
7111
7111
|
"expression": {
|
|
7112
7112
|
"argumentTypes": [
|
|
7113
7113
|
{
|
|
7114
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7114
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7115
7115
|
"typeString": "contract Superfluid"
|
|
7116
7116
|
},
|
|
7117
7117
|
{
|
|
@@ -7132,32 +7132,32 @@
|
|
|
7132
7132
|
}
|
|
7133
7133
|
],
|
|
7134
7134
|
"expression": {
|
|
7135
|
-
"id":
|
|
7135
|
+
"id": 36990,
|
|
7136
7136
|
"name": "governance",
|
|
7137
7137
|
"nodeType": "Identifier",
|
|
7138
7138
|
"overloadedDeclarations": [],
|
|
7139
|
-
"referencedDeclaration":
|
|
7139
|
+
"referencedDeclaration": 36938,
|
|
7140
7140
|
"src": "2142:10:104",
|
|
7141
7141
|
"typeDescriptions": {
|
|
7142
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
7142
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
7143
7143
|
"typeString": "contract TestGovernance"
|
|
7144
7144
|
}
|
|
7145
7145
|
},
|
|
7146
|
-
"id":
|
|
7146
|
+
"id": 36992,
|
|
7147
7147
|
"isConstant": false,
|
|
7148
7148
|
"isLValue": false,
|
|
7149
7149
|
"isPure": false,
|
|
7150
7150
|
"lValueRequested": false,
|
|
7151
7151
|
"memberName": "initialize",
|
|
7152
7152
|
"nodeType": "MemberAccess",
|
|
7153
|
-
"referencedDeclaration":
|
|
7153
|
+
"referencedDeclaration": 38246,
|
|
7154
7154
|
"src": "2142:21:104",
|
|
7155
7155
|
"typeDescriptions": {
|
|
7156
|
-
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluid_$
|
|
7156
|
+
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluid_$19002_$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
|
|
7157
7157
|
"typeString": "function (contract ISuperfluid,address,uint256,uint256,address[] memory) external"
|
|
7158
7158
|
}
|
|
7159
7159
|
},
|
|
7160
|
-
"id":
|
|
7160
|
+
"id": 37001,
|
|
7161
7161
|
"isConstant": false,
|
|
7162
7162
|
"isLValue": false,
|
|
7163
7163
|
"isPure": false,
|
|
@@ -7172,26 +7172,26 @@
|
|
|
7172
7172
|
"typeString": "tuple()"
|
|
7173
7173
|
}
|
|
7174
7174
|
},
|
|
7175
|
-
"id":
|
|
7175
|
+
"id": 37002,
|
|
7176
7176
|
"nodeType": "ExpressionStatement",
|
|
7177
7177
|
"src": "2142:149:104"
|
|
7178
7178
|
},
|
|
7179
7179
|
{
|
|
7180
7180
|
"expression": {
|
|
7181
|
-
"id":
|
|
7181
|
+
"id": 37009,
|
|
7182
7182
|
"isConstant": false,
|
|
7183
7183
|
"isLValue": false,
|
|
7184
7184
|
"isPure": false,
|
|
7185
7185
|
"lValueRequested": false,
|
|
7186
7186
|
"leftHandSide": {
|
|
7187
|
-
"id":
|
|
7187
|
+
"id": 37003,
|
|
7188
7188
|
"name": "cfa",
|
|
7189
7189
|
"nodeType": "Identifier",
|
|
7190
7190
|
"overloadedDeclarations": [],
|
|
7191
|
-
"referencedDeclaration":
|
|
7191
|
+
"referencedDeclaration": 36944,
|
|
7192
7192
|
"src": "2344:3:104",
|
|
7193
7193
|
"typeDescriptions": {
|
|
7194
|
-
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$
|
|
7194
|
+
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$9802",
|
|
7195
7195
|
"typeString": "contract ConstantFlowAgreementV1"
|
|
7196
7196
|
}
|
|
7197
7197
|
},
|
|
@@ -7200,14 +7200,14 @@
|
|
|
7200
7200
|
"rightHandSide": {
|
|
7201
7201
|
"arguments": [
|
|
7202
7202
|
{
|
|
7203
|
-
"id":
|
|
7203
|
+
"id": 37007,
|
|
7204
7204
|
"name": "host",
|
|
7205
7205
|
"nodeType": "Identifier",
|
|
7206
7206
|
"overloadedDeclarations": [],
|
|
7207
|
-
"referencedDeclaration":
|
|
7207
|
+
"referencedDeclaration": 36941,
|
|
7208
7208
|
"src": "2378:4:104",
|
|
7209
7209
|
"typeDescriptions": {
|
|
7210
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7210
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7211
7211
|
"typeString": "contract Superfluid"
|
|
7212
7212
|
}
|
|
7213
7213
|
}
|
|
@@ -7215,11 +7215,11 @@
|
|
|
7215
7215
|
"expression": {
|
|
7216
7216
|
"argumentTypes": [
|
|
7217
7217
|
{
|
|
7218
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7218
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7219
7219
|
"typeString": "contract Superfluid"
|
|
7220
7220
|
}
|
|
7221
7221
|
],
|
|
7222
|
-
"id":
|
|
7222
|
+
"id": 37006,
|
|
7223
7223
|
"isConstant": false,
|
|
7224
7224
|
"isLValue": false,
|
|
7225
7225
|
"isPure": false,
|
|
@@ -7227,28 +7227,28 @@
|
|
|
7227
7227
|
"nodeType": "NewExpression",
|
|
7228
7228
|
"src": "2350:27:104",
|
|
7229
7229
|
"typeDescriptions": {
|
|
7230
|
-
"typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISuperfluid_$
|
|
7230
|
+
"typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISuperfluid_$19002_$returns$_t_contract$_ConstantFlowAgreementV1_$9802_$",
|
|
7231
7231
|
"typeString": "function (contract ISuperfluid) returns (contract ConstantFlowAgreementV1)"
|
|
7232
7232
|
},
|
|
7233
7233
|
"typeName": {
|
|
7234
|
-
"id":
|
|
7234
|
+
"id": 37005,
|
|
7235
7235
|
"nodeType": "UserDefinedTypeName",
|
|
7236
7236
|
"pathNode": {
|
|
7237
|
-
"id":
|
|
7237
|
+
"id": 37004,
|
|
7238
7238
|
"name": "ConstantFlowAgreementV1",
|
|
7239
7239
|
"nodeType": "IdentifierPath",
|
|
7240
|
-
"referencedDeclaration":
|
|
7240
|
+
"referencedDeclaration": 9802,
|
|
7241
7241
|
"src": "2354:23:104"
|
|
7242
7242
|
},
|
|
7243
|
-
"referencedDeclaration":
|
|
7243
|
+
"referencedDeclaration": 9802,
|
|
7244
7244
|
"src": "2354:23:104",
|
|
7245
7245
|
"typeDescriptions": {
|
|
7246
|
-
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$
|
|
7246
|
+
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$9802",
|
|
7247
7247
|
"typeString": "contract ConstantFlowAgreementV1"
|
|
7248
7248
|
}
|
|
7249
7249
|
}
|
|
7250
7250
|
},
|
|
7251
|
-
"id":
|
|
7251
|
+
"id": 37008,
|
|
7252
7252
|
"isConstant": false,
|
|
7253
7253
|
"isLValue": false,
|
|
7254
7254
|
"isPure": false,
|
|
@@ -7259,17 +7259,17 @@
|
|
|
7259
7259
|
"src": "2350:33:104",
|
|
7260
7260
|
"tryCall": false,
|
|
7261
7261
|
"typeDescriptions": {
|
|
7262
|
-
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$
|
|
7262
|
+
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$9802",
|
|
7263
7263
|
"typeString": "contract ConstantFlowAgreementV1"
|
|
7264
7264
|
}
|
|
7265
7265
|
},
|
|
7266
7266
|
"src": "2344:39:104",
|
|
7267
7267
|
"typeDescriptions": {
|
|
7268
|
-
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$
|
|
7268
|
+
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$9802",
|
|
7269
7269
|
"typeString": "contract ConstantFlowAgreementV1"
|
|
7270
7270
|
}
|
|
7271
7271
|
},
|
|
7272
|
-
"id":
|
|
7272
|
+
"id": 37010,
|
|
7273
7273
|
"nodeType": "ExpressionStatement",
|
|
7274
7274
|
"src": "2344:39:104"
|
|
7275
7275
|
},
|
|
@@ -7277,28 +7277,28 @@
|
|
|
7277
7277
|
"expression": {
|
|
7278
7278
|
"arguments": [
|
|
7279
7279
|
{
|
|
7280
|
-
"id":
|
|
7280
|
+
"id": 37014,
|
|
7281
7281
|
"name": "host",
|
|
7282
7282
|
"nodeType": "Identifier",
|
|
7283
7283
|
"overloadedDeclarations": [],
|
|
7284
|
-
"referencedDeclaration":
|
|
7284
|
+
"referencedDeclaration": 36941,
|
|
7285
7285
|
"src": "2487:4:104",
|
|
7286
7286
|
"typeDescriptions": {
|
|
7287
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7287
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7288
7288
|
"typeString": "contract Superfluid"
|
|
7289
7289
|
}
|
|
7290
7290
|
},
|
|
7291
7291
|
{
|
|
7292
7292
|
"arguments": [
|
|
7293
7293
|
{
|
|
7294
|
-
"id":
|
|
7294
|
+
"id": 37017,
|
|
7295
7295
|
"name": "cfa",
|
|
7296
7296
|
"nodeType": "Identifier",
|
|
7297
7297
|
"overloadedDeclarations": [],
|
|
7298
|
-
"referencedDeclaration":
|
|
7298
|
+
"referencedDeclaration": 36944,
|
|
7299
7299
|
"src": "2501:3:104",
|
|
7300
7300
|
"typeDescriptions": {
|
|
7301
|
-
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$
|
|
7301
|
+
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$9802",
|
|
7302
7302
|
"typeString": "contract ConstantFlowAgreementV1"
|
|
7303
7303
|
}
|
|
7304
7304
|
}
|
|
@@ -7306,11 +7306,11 @@
|
|
|
7306
7306
|
"expression": {
|
|
7307
7307
|
"argumentTypes": [
|
|
7308
7308
|
{
|
|
7309
|
-
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$
|
|
7309
|
+
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$9802",
|
|
7310
7310
|
"typeString": "contract ConstantFlowAgreementV1"
|
|
7311
7311
|
}
|
|
7312
7312
|
],
|
|
7313
|
-
"id":
|
|
7313
|
+
"id": 37016,
|
|
7314
7314
|
"isConstant": false,
|
|
7315
7315
|
"isLValue": false,
|
|
7316
7316
|
"isPure": true,
|
|
@@ -7322,14 +7322,14 @@
|
|
|
7322
7322
|
"typeString": "type(address)"
|
|
7323
7323
|
},
|
|
7324
7324
|
"typeName": {
|
|
7325
|
-
"id":
|
|
7325
|
+
"id": 37015,
|
|
7326
7326
|
"name": "address",
|
|
7327
7327
|
"nodeType": "ElementaryTypeName",
|
|
7328
7328
|
"src": "2493:7:104",
|
|
7329
7329
|
"typeDescriptions": {}
|
|
7330
7330
|
}
|
|
7331
7331
|
},
|
|
7332
|
-
"id":
|
|
7332
|
+
"id": 37018,
|
|
7333
7333
|
"isConstant": false,
|
|
7334
7334
|
"isLValue": false,
|
|
7335
7335
|
"isPure": false,
|
|
@@ -7348,7 +7348,7 @@
|
|
|
7348
7348
|
"expression": {
|
|
7349
7349
|
"argumentTypes": [
|
|
7350
7350
|
{
|
|
7351
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7351
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7352
7352
|
"typeString": "contract Superfluid"
|
|
7353
7353
|
},
|
|
7354
7354
|
{
|
|
@@ -7357,32 +7357,32 @@
|
|
|
7357
7357
|
}
|
|
7358
7358
|
],
|
|
7359
7359
|
"expression": {
|
|
7360
|
-
"id":
|
|
7360
|
+
"id": 37011,
|
|
7361
7361
|
"name": "governance",
|
|
7362
7362
|
"nodeType": "Identifier",
|
|
7363
7363
|
"overloadedDeclarations": [],
|
|
7364
|
-
"referencedDeclaration":
|
|
7364
|
+
"referencedDeclaration": 36938,
|
|
7365
7365
|
"src": "2453:10:104",
|
|
7366
7366
|
"typeDescriptions": {
|
|
7367
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
7367
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
7368
7368
|
"typeString": "contract TestGovernance"
|
|
7369
7369
|
}
|
|
7370
7370
|
},
|
|
7371
|
-
"id":
|
|
7371
|
+
"id": 37013,
|
|
7372
7372
|
"isConstant": false,
|
|
7373
7373
|
"isLValue": false,
|
|
7374
7374
|
"isPure": false,
|
|
7375
7375
|
"lValueRequested": false,
|
|
7376
7376
|
"memberName": "registerAgreementClass",
|
|
7377
7377
|
"nodeType": "MemberAccess",
|
|
7378
|
-
"referencedDeclaration":
|
|
7378
|
+
"referencedDeclaration": 15600,
|
|
7379
7379
|
"src": "2453:33:104",
|
|
7380
7380
|
"typeDescriptions": {
|
|
7381
|
-
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluid_$
|
|
7381
|
+
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluid_$19002_$_t_address_$returns$__$",
|
|
7382
7382
|
"typeString": "function (contract ISuperfluid,address) external"
|
|
7383
7383
|
}
|
|
7384
7384
|
},
|
|
7385
|
-
"id":
|
|
7385
|
+
"id": 37019,
|
|
7386
7386
|
"isConstant": false,
|
|
7387
7387
|
"isLValue": false,
|
|
7388
7388
|
"isPure": false,
|
|
@@ -7397,26 +7397,26 @@
|
|
|
7397
7397
|
"typeString": "tuple()"
|
|
7398
7398
|
}
|
|
7399
7399
|
},
|
|
7400
|
-
"id":
|
|
7400
|
+
"id": 37020,
|
|
7401
7401
|
"nodeType": "ExpressionStatement",
|
|
7402
7402
|
"src": "2453:53:104"
|
|
7403
7403
|
},
|
|
7404
7404
|
{
|
|
7405
7405
|
"expression": {
|
|
7406
|
-
"id":
|
|
7406
|
+
"id": 37027,
|
|
7407
7407
|
"isConstant": false,
|
|
7408
7408
|
"isLValue": false,
|
|
7409
7409
|
"isPure": false,
|
|
7410
7410
|
"lValueRequested": false,
|
|
7411
7411
|
"leftHandSide": {
|
|
7412
|
-
"id":
|
|
7412
|
+
"id": 37021,
|
|
7413
7413
|
"name": "ida",
|
|
7414
7414
|
"nodeType": "Identifier",
|
|
7415
7415
|
"overloadedDeclarations": [],
|
|
7416
|
-
"referencedDeclaration":
|
|
7416
|
+
"referencedDeclaration": 36947,
|
|
7417
7417
|
"src": "2566:3:104",
|
|
7418
7418
|
"typeDescriptions": {
|
|
7419
|
-
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$
|
|
7419
|
+
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$13190",
|
|
7420
7420
|
"typeString": "contract InstantDistributionAgreementV1"
|
|
7421
7421
|
}
|
|
7422
7422
|
},
|
|
@@ -7425,14 +7425,14 @@
|
|
|
7425
7425
|
"rightHandSide": {
|
|
7426
7426
|
"arguments": [
|
|
7427
7427
|
{
|
|
7428
|
-
"id":
|
|
7428
|
+
"id": 37025,
|
|
7429
7429
|
"name": "host",
|
|
7430
7430
|
"nodeType": "Identifier",
|
|
7431
7431
|
"overloadedDeclarations": [],
|
|
7432
|
-
"referencedDeclaration":
|
|
7432
|
+
"referencedDeclaration": 36941,
|
|
7433
7433
|
"src": "2607:4:104",
|
|
7434
7434
|
"typeDescriptions": {
|
|
7435
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7435
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7436
7436
|
"typeString": "contract Superfluid"
|
|
7437
7437
|
}
|
|
7438
7438
|
}
|
|
@@ -7440,11 +7440,11 @@
|
|
|
7440
7440
|
"expression": {
|
|
7441
7441
|
"argumentTypes": [
|
|
7442
7442
|
{
|
|
7443
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7443
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7444
7444
|
"typeString": "contract Superfluid"
|
|
7445
7445
|
}
|
|
7446
7446
|
],
|
|
7447
|
-
"id":
|
|
7447
|
+
"id": 37024,
|
|
7448
7448
|
"isConstant": false,
|
|
7449
7449
|
"isLValue": false,
|
|
7450
7450
|
"isPure": false,
|
|
@@ -7452,28 +7452,28 @@
|
|
|
7452
7452
|
"nodeType": "NewExpression",
|
|
7453
7453
|
"src": "2572:34:104",
|
|
7454
7454
|
"typeDescriptions": {
|
|
7455
|
-
"typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISuperfluid_$
|
|
7455
|
+
"typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISuperfluid_$19002_$returns$_t_contract$_InstantDistributionAgreementV1_$13190_$",
|
|
7456
7456
|
"typeString": "function (contract ISuperfluid) returns (contract InstantDistributionAgreementV1)"
|
|
7457
7457
|
},
|
|
7458
7458
|
"typeName": {
|
|
7459
|
-
"id":
|
|
7459
|
+
"id": 37023,
|
|
7460
7460
|
"nodeType": "UserDefinedTypeName",
|
|
7461
7461
|
"pathNode": {
|
|
7462
|
-
"id":
|
|
7462
|
+
"id": 37022,
|
|
7463
7463
|
"name": "InstantDistributionAgreementV1",
|
|
7464
7464
|
"nodeType": "IdentifierPath",
|
|
7465
|
-
"referencedDeclaration":
|
|
7465
|
+
"referencedDeclaration": 13190,
|
|
7466
7466
|
"src": "2576:30:104"
|
|
7467
7467
|
},
|
|
7468
|
-
"referencedDeclaration":
|
|
7468
|
+
"referencedDeclaration": 13190,
|
|
7469
7469
|
"src": "2576:30:104",
|
|
7470
7470
|
"typeDescriptions": {
|
|
7471
|
-
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$
|
|
7471
|
+
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$13190",
|
|
7472
7472
|
"typeString": "contract InstantDistributionAgreementV1"
|
|
7473
7473
|
}
|
|
7474
7474
|
}
|
|
7475
7475
|
},
|
|
7476
|
-
"id":
|
|
7476
|
+
"id": 37026,
|
|
7477
7477
|
"isConstant": false,
|
|
7478
7478
|
"isLValue": false,
|
|
7479
7479
|
"isPure": false,
|
|
@@ -7484,17 +7484,17 @@
|
|
|
7484
7484
|
"src": "2572:40:104",
|
|
7485
7485
|
"tryCall": false,
|
|
7486
7486
|
"typeDescriptions": {
|
|
7487
|
-
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$
|
|
7487
|
+
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$13190",
|
|
7488
7488
|
"typeString": "contract InstantDistributionAgreementV1"
|
|
7489
7489
|
}
|
|
7490
7490
|
},
|
|
7491
7491
|
"src": "2566:46:104",
|
|
7492
7492
|
"typeDescriptions": {
|
|
7493
|
-
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$
|
|
7493
|
+
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$13190",
|
|
7494
7494
|
"typeString": "contract InstantDistributionAgreementV1"
|
|
7495
7495
|
}
|
|
7496
7496
|
},
|
|
7497
|
-
"id":
|
|
7497
|
+
"id": 37028,
|
|
7498
7498
|
"nodeType": "ExpressionStatement",
|
|
7499
7499
|
"src": "2566:46:104"
|
|
7500
7500
|
},
|
|
@@ -7502,28 +7502,28 @@
|
|
|
7502
7502
|
"expression": {
|
|
7503
7503
|
"arguments": [
|
|
7504
7504
|
{
|
|
7505
|
-
"id":
|
|
7505
|
+
"id": 37032,
|
|
7506
7506
|
"name": "host",
|
|
7507
7507
|
"nodeType": "Identifier",
|
|
7508
7508
|
"overloadedDeclarations": [],
|
|
7509
|
-
"referencedDeclaration":
|
|
7509
|
+
"referencedDeclaration": 36941,
|
|
7510
7510
|
"src": "2724:4:104",
|
|
7511
7511
|
"typeDescriptions": {
|
|
7512
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7512
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7513
7513
|
"typeString": "contract Superfluid"
|
|
7514
7514
|
}
|
|
7515
7515
|
},
|
|
7516
7516
|
{
|
|
7517
7517
|
"arguments": [
|
|
7518
7518
|
{
|
|
7519
|
-
"id":
|
|
7519
|
+
"id": 37035,
|
|
7520
7520
|
"name": "ida",
|
|
7521
7521
|
"nodeType": "Identifier",
|
|
7522
7522
|
"overloadedDeclarations": [],
|
|
7523
|
-
"referencedDeclaration":
|
|
7523
|
+
"referencedDeclaration": 36947,
|
|
7524
7524
|
"src": "2738:3:104",
|
|
7525
7525
|
"typeDescriptions": {
|
|
7526
|
-
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$
|
|
7526
|
+
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$13190",
|
|
7527
7527
|
"typeString": "contract InstantDistributionAgreementV1"
|
|
7528
7528
|
}
|
|
7529
7529
|
}
|
|
@@ -7531,11 +7531,11 @@
|
|
|
7531
7531
|
"expression": {
|
|
7532
7532
|
"argumentTypes": [
|
|
7533
7533
|
{
|
|
7534
|
-
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$
|
|
7534
|
+
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$13190",
|
|
7535
7535
|
"typeString": "contract InstantDistributionAgreementV1"
|
|
7536
7536
|
}
|
|
7537
7537
|
],
|
|
7538
|
-
"id":
|
|
7538
|
+
"id": 37034,
|
|
7539
7539
|
"isConstant": false,
|
|
7540
7540
|
"isLValue": false,
|
|
7541
7541
|
"isPure": true,
|
|
@@ -7547,14 +7547,14 @@
|
|
|
7547
7547
|
"typeString": "type(address)"
|
|
7548
7548
|
},
|
|
7549
7549
|
"typeName": {
|
|
7550
|
-
"id":
|
|
7550
|
+
"id": 37033,
|
|
7551
7551
|
"name": "address",
|
|
7552
7552
|
"nodeType": "ElementaryTypeName",
|
|
7553
7553
|
"src": "2730:7:104",
|
|
7554
7554
|
"typeDescriptions": {}
|
|
7555
7555
|
}
|
|
7556
7556
|
},
|
|
7557
|
-
"id":
|
|
7557
|
+
"id": 37036,
|
|
7558
7558
|
"isConstant": false,
|
|
7559
7559
|
"isLValue": false,
|
|
7560
7560
|
"isPure": false,
|
|
@@ -7573,7 +7573,7 @@
|
|
|
7573
7573
|
"expression": {
|
|
7574
7574
|
"argumentTypes": [
|
|
7575
7575
|
{
|
|
7576
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7576
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7577
7577
|
"typeString": "contract Superfluid"
|
|
7578
7578
|
},
|
|
7579
7579
|
{
|
|
@@ -7582,32 +7582,32 @@
|
|
|
7582
7582
|
}
|
|
7583
7583
|
],
|
|
7584
7584
|
"expression": {
|
|
7585
|
-
"id":
|
|
7585
|
+
"id": 37029,
|
|
7586
7586
|
"name": "governance",
|
|
7587
7587
|
"nodeType": "Identifier",
|
|
7588
7588
|
"overloadedDeclarations": [],
|
|
7589
|
-
"referencedDeclaration":
|
|
7589
|
+
"referencedDeclaration": 36938,
|
|
7590
7590
|
"src": "2690:10:104",
|
|
7591
7591
|
"typeDescriptions": {
|
|
7592
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
7592
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
7593
7593
|
"typeString": "contract TestGovernance"
|
|
7594
7594
|
}
|
|
7595
7595
|
},
|
|
7596
|
-
"id":
|
|
7596
|
+
"id": 37031,
|
|
7597
7597
|
"isConstant": false,
|
|
7598
7598
|
"isLValue": false,
|
|
7599
7599
|
"isPure": false,
|
|
7600
7600
|
"lValueRequested": false,
|
|
7601
7601
|
"memberName": "registerAgreementClass",
|
|
7602
7602
|
"nodeType": "MemberAccess",
|
|
7603
|
-
"referencedDeclaration":
|
|
7603
|
+
"referencedDeclaration": 15600,
|
|
7604
7604
|
"src": "2690:33:104",
|
|
7605
7605
|
"typeDescriptions": {
|
|
7606
|
-
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluid_$
|
|
7606
|
+
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluid_$19002_$_t_address_$returns$__$",
|
|
7607
7607
|
"typeString": "function (contract ISuperfluid,address) external"
|
|
7608
7608
|
}
|
|
7609
7609
|
},
|
|
7610
|
-
"id":
|
|
7610
|
+
"id": 37037,
|
|
7611
7611
|
"isConstant": false,
|
|
7612
7612
|
"isLValue": false,
|
|
7613
7613
|
"isPure": false,
|
|
@@ -7622,26 +7622,26 @@
|
|
|
7622
7622
|
"typeString": "tuple()"
|
|
7623
7623
|
}
|
|
7624
7624
|
},
|
|
7625
|
-
"id":
|
|
7625
|
+
"id": 37038,
|
|
7626
7626
|
"nodeType": "ExpressionStatement",
|
|
7627
7627
|
"src": "2690:53:104"
|
|
7628
7628
|
},
|
|
7629
7629
|
{
|
|
7630
7630
|
"expression": {
|
|
7631
|
-
"id":
|
|
7631
|
+
"id": 37044,
|
|
7632
7632
|
"isConstant": false,
|
|
7633
7633
|
"isLValue": false,
|
|
7634
7634
|
"isPure": false,
|
|
7635
7635
|
"lValueRequested": false,
|
|
7636
7636
|
"leftHandSide": {
|
|
7637
|
-
"id":
|
|
7637
|
+
"id": 37039,
|
|
7638
7638
|
"name": "superTokenFactoryHelper",
|
|
7639
7639
|
"nodeType": "Identifier",
|
|
7640
7640
|
"overloadedDeclarations": [],
|
|
7641
|
-
"referencedDeclaration":
|
|
7641
|
+
"referencedDeclaration": 36950,
|
|
7642
7642
|
"src": "2796:23:104",
|
|
7643
7643
|
"typeDescriptions": {
|
|
7644
|
-
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$
|
|
7644
|
+
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$32029",
|
|
7645
7645
|
"typeString": "contract SuperTokenFactoryHelper"
|
|
7646
7646
|
}
|
|
7647
7647
|
},
|
|
@@ -7651,7 +7651,7 @@
|
|
|
7651
7651
|
"arguments": [],
|
|
7652
7652
|
"expression": {
|
|
7653
7653
|
"argumentTypes": [],
|
|
7654
|
-
"id":
|
|
7654
|
+
"id": 37042,
|
|
7655
7655
|
"isConstant": false,
|
|
7656
7656
|
"isLValue": false,
|
|
7657
7657
|
"isPure": false,
|
|
@@ -7659,28 +7659,28 @@
|
|
|
7659
7659
|
"nodeType": "NewExpression",
|
|
7660
7660
|
"src": "2822:27:104",
|
|
7661
7661
|
"typeDescriptions": {
|
|
7662
|
-
"typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_SuperTokenFactoryHelper_$
|
|
7662
|
+
"typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_SuperTokenFactoryHelper_$32029_$",
|
|
7663
7663
|
"typeString": "function () returns (contract SuperTokenFactoryHelper)"
|
|
7664
7664
|
},
|
|
7665
7665
|
"typeName": {
|
|
7666
|
-
"id":
|
|
7666
|
+
"id": 37041,
|
|
7667
7667
|
"nodeType": "UserDefinedTypeName",
|
|
7668
7668
|
"pathNode": {
|
|
7669
|
-
"id":
|
|
7669
|
+
"id": 37040,
|
|
7670
7670
|
"name": "SuperTokenFactoryHelper",
|
|
7671
7671
|
"nodeType": "IdentifierPath",
|
|
7672
|
-
"referencedDeclaration":
|
|
7672
|
+
"referencedDeclaration": 32029,
|
|
7673
7673
|
"src": "2826:23:104"
|
|
7674
7674
|
},
|
|
7675
|
-
"referencedDeclaration":
|
|
7675
|
+
"referencedDeclaration": 32029,
|
|
7676
7676
|
"src": "2826:23:104",
|
|
7677
7677
|
"typeDescriptions": {
|
|
7678
|
-
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$
|
|
7678
|
+
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$32029",
|
|
7679
7679
|
"typeString": "contract SuperTokenFactoryHelper"
|
|
7680
7680
|
}
|
|
7681
7681
|
}
|
|
7682
7682
|
},
|
|
7683
|
-
"id":
|
|
7683
|
+
"id": 37043,
|
|
7684
7684
|
"isConstant": false,
|
|
7685
7685
|
"isLValue": false,
|
|
7686
7686
|
"isPure": false,
|
|
@@ -7691,36 +7691,36 @@
|
|
|
7691
7691
|
"src": "2822:29:104",
|
|
7692
7692
|
"tryCall": false,
|
|
7693
7693
|
"typeDescriptions": {
|
|
7694
|
-
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$
|
|
7694
|
+
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$32029",
|
|
7695
7695
|
"typeString": "contract SuperTokenFactoryHelper"
|
|
7696
7696
|
}
|
|
7697
7697
|
},
|
|
7698
7698
|
"src": "2796:55:104",
|
|
7699
7699
|
"typeDescriptions": {
|
|
7700
|
-
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$
|
|
7700
|
+
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$32029",
|
|
7701
7701
|
"typeString": "contract SuperTokenFactoryHelper"
|
|
7702
7702
|
}
|
|
7703
7703
|
},
|
|
7704
|
-
"id":
|
|
7704
|
+
"id": 37045,
|
|
7705
7705
|
"nodeType": "ExpressionStatement",
|
|
7706
7706
|
"src": "2796:55:104"
|
|
7707
7707
|
},
|
|
7708
7708
|
{
|
|
7709
7709
|
"expression": {
|
|
7710
|
-
"id":
|
|
7710
|
+
"id": 37053,
|
|
7711
7711
|
"isConstant": false,
|
|
7712
7712
|
"isLValue": false,
|
|
7713
7713
|
"isPure": false,
|
|
7714
7714
|
"lValueRequested": false,
|
|
7715
7715
|
"leftHandSide": {
|
|
7716
|
-
"id":
|
|
7716
|
+
"id": 37046,
|
|
7717
7717
|
"name": "superTokenFactory",
|
|
7718
7718
|
"nodeType": "Identifier",
|
|
7719
7719
|
"overloadedDeclarations": [],
|
|
7720
|
-
"referencedDeclaration":
|
|
7720
|
+
"referencedDeclaration": 36953,
|
|
7721
7721
|
"src": "2898:17:104",
|
|
7722
7722
|
"typeDescriptions": {
|
|
7723
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
7723
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
7724
7724
|
"typeString": "contract SuperTokenFactory"
|
|
7725
7725
|
}
|
|
7726
7726
|
},
|
|
@@ -7729,26 +7729,26 @@
|
|
|
7729
7729
|
"rightHandSide": {
|
|
7730
7730
|
"arguments": [
|
|
7731
7731
|
{
|
|
7732
|
-
"id":
|
|
7732
|
+
"id": 37050,
|
|
7733
7733
|
"name": "host",
|
|
7734
7734
|
"nodeType": "Identifier",
|
|
7735
7735
|
"overloadedDeclarations": [],
|
|
7736
|
-
"referencedDeclaration":
|
|
7736
|
+
"referencedDeclaration": 36941,
|
|
7737
7737
|
"src": "2953:4:104",
|
|
7738
7738
|
"typeDescriptions": {
|
|
7739
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7739
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7740
7740
|
"typeString": "contract Superfluid"
|
|
7741
7741
|
}
|
|
7742
7742
|
},
|
|
7743
7743
|
{
|
|
7744
|
-
"id":
|
|
7744
|
+
"id": 37051,
|
|
7745
7745
|
"name": "superTokenFactoryHelper",
|
|
7746
7746
|
"nodeType": "Identifier",
|
|
7747
7747
|
"overloadedDeclarations": [],
|
|
7748
|
-
"referencedDeclaration":
|
|
7748
|
+
"referencedDeclaration": 36950,
|
|
7749
7749
|
"src": "2971:23:104",
|
|
7750
7750
|
"typeDescriptions": {
|
|
7751
|
-
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$
|
|
7751
|
+
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$32029",
|
|
7752
7752
|
"typeString": "contract SuperTokenFactoryHelper"
|
|
7753
7753
|
}
|
|
7754
7754
|
}
|
|
@@ -7756,15 +7756,15 @@
|
|
|
7756
7756
|
"expression": {
|
|
7757
7757
|
"argumentTypes": [
|
|
7758
7758
|
{
|
|
7759
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7759
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7760
7760
|
"typeString": "contract Superfluid"
|
|
7761
7761
|
},
|
|
7762
7762
|
{
|
|
7763
|
-
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$
|
|
7763
|
+
"typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$32029",
|
|
7764
7764
|
"typeString": "contract SuperTokenFactoryHelper"
|
|
7765
7765
|
}
|
|
7766
7766
|
],
|
|
7767
|
-
"id":
|
|
7767
|
+
"id": 37049,
|
|
7768
7768
|
"isConstant": false,
|
|
7769
7769
|
"isLValue": false,
|
|
7770
7770
|
"isPure": false,
|
|
@@ -7772,28 +7772,28 @@
|
|
|
7772
7772
|
"nodeType": "NewExpression",
|
|
7773
7773
|
"src": "2918:21:104",
|
|
7774
7774
|
"typeDescriptions": {
|
|
7775
|
-
"typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISuperfluid_$
|
|
7775
|
+
"typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISuperfluid_$19002_$_t_contract$_SuperTokenFactoryHelper_$32029_$returns$_t_contract$_SuperTokenFactory_$32067_$",
|
|
7776
7776
|
"typeString": "function (contract ISuperfluid,contract SuperTokenFactoryHelper) returns (contract SuperTokenFactory)"
|
|
7777
7777
|
},
|
|
7778
7778
|
"typeName": {
|
|
7779
|
-
"id":
|
|
7779
|
+
"id": 37048,
|
|
7780
7780
|
"nodeType": "UserDefinedTypeName",
|
|
7781
7781
|
"pathNode": {
|
|
7782
|
-
"id":
|
|
7782
|
+
"id": 37047,
|
|
7783
7783
|
"name": "SuperTokenFactory",
|
|
7784
7784
|
"nodeType": "IdentifierPath",
|
|
7785
|
-
"referencedDeclaration":
|
|
7785
|
+
"referencedDeclaration": 32067,
|
|
7786
7786
|
"src": "2922:17:104"
|
|
7787
7787
|
},
|
|
7788
|
-
"referencedDeclaration":
|
|
7788
|
+
"referencedDeclaration": 32067,
|
|
7789
7789
|
"src": "2922:17:104",
|
|
7790
7790
|
"typeDescriptions": {
|
|
7791
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
7791
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
7792
7792
|
"typeString": "contract SuperTokenFactory"
|
|
7793
7793
|
}
|
|
7794
7794
|
}
|
|
7795
7795
|
},
|
|
7796
|
-
"id":
|
|
7796
|
+
"id": 37052,
|
|
7797
7797
|
"isConstant": false,
|
|
7798
7798
|
"isLValue": false,
|
|
7799
7799
|
"isPure": false,
|
|
@@ -7804,17 +7804,17 @@
|
|
|
7804
7804
|
"src": "2918:86:104",
|
|
7805
7805
|
"tryCall": false,
|
|
7806
7806
|
"typeDescriptions": {
|
|
7807
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
7807
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
7808
7808
|
"typeString": "contract SuperTokenFactory"
|
|
7809
7809
|
}
|
|
7810
7810
|
},
|
|
7811
7811
|
"src": "2898:106:104",
|
|
7812
7812
|
"typeDescriptions": {
|
|
7813
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
7813
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
7814
7814
|
"typeString": "contract SuperTokenFactory"
|
|
7815
7815
|
}
|
|
7816
7816
|
},
|
|
7817
|
-
"id":
|
|
7817
|
+
"id": 37054,
|
|
7818
7818
|
"nodeType": "ExpressionStatement",
|
|
7819
7819
|
"src": "2898:106:104"
|
|
7820
7820
|
},
|
|
@@ -7822,14 +7822,14 @@
|
|
|
7822
7822
|
"expression": {
|
|
7823
7823
|
"arguments": [
|
|
7824
7824
|
{
|
|
7825
|
-
"id":
|
|
7825
|
+
"id": 37058,
|
|
7826
7826
|
"name": "host",
|
|
7827
7827
|
"nodeType": "Identifier",
|
|
7828
7828
|
"overloadedDeclarations": [],
|
|
7829
|
-
"referencedDeclaration":
|
|
7829
|
+
"referencedDeclaration": 36941,
|
|
7830
7830
|
"src": "3143:4:104",
|
|
7831
7831
|
"typeDescriptions": {
|
|
7832
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
7832
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
7833
7833
|
"typeString": "contract Superfluid"
|
|
7834
7834
|
}
|
|
7835
7835
|
},
|
|
@@ -7837,7 +7837,7 @@
|
|
|
7837
7837
|
"arguments": [
|
|
7838
7838
|
{
|
|
7839
7839
|
"hexValue": "30",
|
|
7840
|
-
"id":
|
|
7840
|
+
"id": 37061,
|
|
7841
7841
|
"isConstant": false,
|
|
7842
7842
|
"isLValue": false,
|
|
7843
7843
|
"isPure": true,
|
|
@@ -7859,7 +7859,7 @@
|
|
|
7859
7859
|
"typeString": "int_const 0"
|
|
7860
7860
|
}
|
|
7861
7861
|
],
|
|
7862
|
-
"id":
|
|
7862
|
+
"id": 37060,
|
|
7863
7863
|
"isConstant": false,
|
|
7864
7864
|
"isLValue": false,
|
|
7865
7865
|
"isPure": true,
|
|
@@ -7871,14 +7871,14 @@
|
|
|
7871
7871
|
"typeString": "type(address)"
|
|
7872
7872
|
},
|
|
7873
7873
|
"typeName": {
|
|
7874
|
-
"id":
|
|
7874
|
+
"id": 37059,
|
|
7875
7875
|
"name": "address",
|
|
7876
7876
|
"nodeType": "ElementaryTypeName",
|
|
7877
7877
|
"src": "3161:7:104",
|
|
7878
7878
|
"typeDescriptions": {}
|
|
7879
7879
|
}
|
|
7880
7880
|
},
|
|
7881
|
-
"id":
|
|
7881
|
+
"id": 37062,
|
|
7882
7882
|
"isConstant": false,
|
|
7883
7883
|
"isLValue": false,
|
|
7884
7884
|
"isPure": true,
|
|
@@ -7897,7 +7897,7 @@
|
|
|
7897
7897
|
"arguments": [
|
|
7898
7898
|
{
|
|
7899
7899
|
"hexValue": "30",
|
|
7900
|
-
"id":
|
|
7900
|
+
"id": 37066,
|
|
7901
7901
|
"isConstant": false,
|
|
7902
7902
|
"isLValue": false,
|
|
7903
7903
|
"isPure": true,
|
|
@@ -7919,7 +7919,7 @@
|
|
|
7919
7919
|
"typeString": "int_const 0"
|
|
7920
7920
|
}
|
|
7921
7921
|
],
|
|
7922
|
-
"id":
|
|
7922
|
+
"id": 37065,
|
|
7923
7923
|
"isConstant": false,
|
|
7924
7924
|
"isLValue": false,
|
|
7925
7925
|
"isPure": true,
|
|
@@ -7932,7 +7932,7 @@
|
|
|
7932
7932
|
},
|
|
7933
7933
|
"typeName": {
|
|
7934
7934
|
"baseType": {
|
|
7935
|
-
"id":
|
|
7935
|
+
"id": 37063,
|
|
7936
7936
|
"name": "address",
|
|
7937
7937
|
"nodeType": "ElementaryTypeName",
|
|
7938
7938
|
"src": "3189:7:104",
|
|
@@ -7942,7 +7942,7 @@
|
|
|
7942
7942
|
"typeString": "address"
|
|
7943
7943
|
}
|
|
7944
7944
|
},
|
|
7945
|
-
"id":
|
|
7945
|
+
"id": 37064,
|
|
7946
7946
|
"nodeType": "ArrayTypeName",
|
|
7947
7947
|
"src": "3189:9:104",
|
|
7948
7948
|
"typeDescriptions": {
|
|
@@ -7951,7 +7951,7 @@
|
|
|
7951
7951
|
}
|
|
7952
7952
|
}
|
|
7953
7953
|
},
|
|
7954
|
-
"id":
|
|
7954
|
+
"id": 37067,
|
|
7955
7955
|
"isConstant": false,
|
|
7956
7956
|
"isLValue": false,
|
|
7957
7957
|
"isPure": true,
|
|
@@ -7969,14 +7969,14 @@
|
|
|
7969
7969
|
{
|
|
7970
7970
|
"arguments": [
|
|
7971
7971
|
{
|
|
7972
|
-
"id":
|
|
7972
|
+
"id": 37070,
|
|
7973
7973
|
"name": "superTokenFactory",
|
|
7974
7974
|
"nodeType": "Identifier",
|
|
7975
7975
|
"overloadedDeclarations": [],
|
|
7976
|
-
"referencedDeclaration":
|
|
7976
|
+
"referencedDeclaration": 36953,
|
|
7977
7977
|
"src": "3223:17:104",
|
|
7978
7978
|
"typeDescriptions": {
|
|
7979
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
7979
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
7980
7980
|
"typeString": "contract SuperTokenFactory"
|
|
7981
7981
|
}
|
|
7982
7982
|
}
|
|
@@ -7984,11 +7984,11 @@
|
|
|
7984
7984
|
"expression": {
|
|
7985
7985
|
"argumentTypes": [
|
|
7986
7986
|
{
|
|
7987
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
7987
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
7988
7988
|
"typeString": "contract SuperTokenFactory"
|
|
7989
7989
|
}
|
|
7990
7990
|
],
|
|
7991
|
-
"id":
|
|
7991
|
+
"id": 37069,
|
|
7992
7992
|
"isConstant": false,
|
|
7993
7993
|
"isLValue": false,
|
|
7994
7994
|
"isPure": true,
|
|
@@ -8000,14 +8000,14 @@
|
|
|
8000
8000
|
"typeString": "type(address)"
|
|
8001
8001
|
},
|
|
8002
8002
|
"typeName": {
|
|
8003
|
-
"id":
|
|
8003
|
+
"id": 37068,
|
|
8004
8004
|
"name": "address",
|
|
8005
8005
|
"nodeType": "ElementaryTypeName",
|
|
8006
8006
|
"src": "3215:7:104",
|
|
8007
8007
|
"typeDescriptions": {}
|
|
8008
8008
|
}
|
|
8009
8009
|
},
|
|
8010
|
-
"id":
|
|
8010
|
+
"id": 37071,
|
|
8011
8011
|
"isConstant": false,
|
|
8012
8012
|
"isLValue": false,
|
|
8013
8013
|
"isPure": false,
|
|
@@ -8026,7 +8026,7 @@
|
|
|
8026
8026
|
"expression": {
|
|
8027
8027
|
"argumentTypes": [
|
|
8028
8028
|
{
|
|
8029
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
8029
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
8030
8030
|
"typeString": "contract Superfluid"
|
|
8031
8031
|
},
|
|
8032
8032
|
{
|
|
@@ -8043,32 +8043,32 @@
|
|
|
8043
8043
|
}
|
|
8044
8044
|
],
|
|
8045
8045
|
"expression": {
|
|
8046
|
-
"id":
|
|
8046
|
+
"id": 37055,
|
|
8047
8047
|
"name": "governance",
|
|
8048
8048
|
"nodeType": "Identifier",
|
|
8049
8049
|
"overloadedDeclarations": [],
|
|
8050
|
-
"referencedDeclaration":
|
|
8050
|
+
"referencedDeclaration": 36938,
|
|
8051
8051
|
"src": "3103:10:104",
|
|
8052
8052
|
"typeDescriptions": {
|
|
8053
|
-
"typeIdentifier": "t_contract$_TestGovernance_$
|
|
8053
|
+
"typeIdentifier": "t_contract$_TestGovernance_$38269",
|
|
8054
8054
|
"typeString": "contract TestGovernance"
|
|
8055
8055
|
}
|
|
8056
8056
|
},
|
|
8057
|
-
"id":
|
|
8057
|
+
"id": 37057,
|
|
8058
8058
|
"isConstant": false,
|
|
8059
8059
|
"isLValue": false,
|
|
8060
8060
|
"isPure": false,
|
|
8061
8061
|
"lValueRequested": false,
|
|
8062
8062
|
"memberName": "updateContracts",
|
|
8063
8063
|
"nodeType": "MemberAccess",
|
|
8064
|
-
"referencedDeclaration":
|
|
8064
|
+
"referencedDeclaration": 15675,
|
|
8065
8065
|
"src": "3103:26:104",
|
|
8066
8066
|
"typeDescriptions": {
|
|
8067
|
-
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluid_$
|
|
8067
|
+
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluid_$19002_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$",
|
|
8068
8068
|
"typeString": "function (contract ISuperfluid,address,address[] memory,address) external"
|
|
8069
8069
|
}
|
|
8070
8070
|
},
|
|
8071
|
-
"id":
|
|
8071
|
+
"id": 37072,
|
|
8072
8072
|
"isConstant": false,
|
|
8073
8073
|
"isLValue": false,
|
|
8074
8074
|
"isPure": false,
|
|
@@ -8083,19 +8083,19 @@
|
|
|
8083
8083
|
"typeString": "tuple()"
|
|
8084
8084
|
}
|
|
8085
8085
|
},
|
|
8086
|
-
"id":
|
|
8086
|
+
"id": 37073,
|
|
8087
8087
|
"nodeType": "ExpressionStatement",
|
|
8088
8088
|
"src": "3103:148:104"
|
|
8089
8089
|
}
|
|
8090
8090
|
]
|
|
8091
8091
|
},
|
|
8092
8092
|
"documentation": {
|
|
8093
|
-
"id":
|
|
8093
|
+
"id": 36954,
|
|
8094
8094
|
"nodeType": "StructuredDocumentation",
|
|
8095
8095
|
"src": "1178:42:104",
|
|
8096
8096
|
"text": "@notice Deploys everything... probably"
|
|
8097
8097
|
},
|
|
8098
|
-
"id":
|
|
8098
|
+
"id": 37075,
|
|
8099
8099
|
"implemented": true,
|
|
8100
8100
|
"kind": "constructor",
|
|
8101
8101
|
"modifiers": [],
|
|
@@ -8103,18 +8103,18 @@
|
|
|
8103
8103
|
"nameLocation": "-1:-1:-1",
|
|
8104
8104
|
"nodeType": "FunctionDefinition",
|
|
8105
8105
|
"parameters": {
|
|
8106
|
-
"id":
|
|
8106
|
+
"id": 36955,
|
|
8107
8107
|
"nodeType": "ParameterList",
|
|
8108
8108
|
"parameters": [],
|
|
8109
8109
|
"src": "1236:2:104"
|
|
8110
8110
|
},
|
|
8111
8111
|
"returnParameters": {
|
|
8112
|
-
"id":
|
|
8112
|
+
"id": 36956,
|
|
8113
8113
|
"nodeType": "ParameterList",
|
|
8114
8114
|
"parameters": [],
|
|
8115
8115
|
"src": "1239:0:104"
|
|
8116
8116
|
},
|
|
8117
|
-
"scope":
|
|
8117
|
+
"scope": 37185,
|
|
8118
8118
|
"src": "1225:2033:104",
|
|
8119
8119
|
"stateMutability": "nonpayable",
|
|
8120
8120
|
"virtual": false,
|
|
@@ -8122,7 +8122,7 @@
|
|
|
8122
8122
|
},
|
|
8123
8123
|
{
|
|
8124
8124
|
"body": {
|
|
8125
|
-
"id":
|
|
8125
|
+
"id": 37097,
|
|
8126
8126
|
"nodeType": "Block",
|
|
8127
8127
|
"src": "3525:59:104",
|
|
8128
8128
|
"statements": [
|
|
@@ -8130,55 +8130,55 @@
|
|
|
8130
8130
|
"expression": {
|
|
8131
8131
|
"components": [
|
|
8132
8132
|
{
|
|
8133
|
-
"id":
|
|
8133
|
+
"id": 37091,
|
|
8134
8134
|
"name": "host",
|
|
8135
8135
|
"nodeType": "Identifier",
|
|
8136
8136
|
"overloadedDeclarations": [],
|
|
8137
|
-
"referencedDeclaration":
|
|
8137
|
+
"referencedDeclaration": 36941,
|
|
8138
8138
|
"src": "3543:4:104",
|
|
8139
8139
|
"typeDescriptions": {
|
|
8140
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
8140
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
8141
8141
|
"typeString": "contract Superfluid"
|
|
8142
8142
|
}
|
|
8143
8143
|
},
|
|
8144
8144
|
{
|
|
8145
|
-
"id":
|
|
8145
|
+
"id": 37092,
|
|
8146
8146
|
"name": "cfa",
|
|
8147
8147
|
"nodeType": "Identifier",
|
|
8148
8148
|
"overloadedDeclarations": [],
|
|
8149
|
-
"referencedDeclaration":
|
|
8149
|
+
"referencedDeclaration": 36944,
|
|
8150
8150
|
"src": "3549:3:104",
|
|
8151
8151
|
"typeDescriptions": {
|
|
8152
|
-
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$
|
|
8152
|
+
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$9802",
|
|
8153
8153
|
"typeString": "contract ConstantFlowAgreementV1"
|
|
8154
8154
|
}
|
|
8155
8155
|
},
|
|
8156
8156
|
{
|
|
8157
|
-
"id":
|
|
8157
|
+
"id": 37093,
|
|
8158
8158
|
"name": "ida",
|
|
8159
8159
|
"nodeType": "Identifier",
|
|
8160
8160
|
"overloadedDeclarations": [],
|
|
8161
|
-
"referencedDeclaration":
|
|
8161
|
+
"referencedDeclaration": 36947,
|
|
8162
8162
|
"src": "3554:3:104",
|
|
8163
8163
|
"typeDescriptions": {
|
|
8164
|
-
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$
|
|
8164
|
+
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$13190",
|
|
8165
8165
|
"typeString": "contract InstantDistributionAgreementV1"
|
|
8166
8166
|
}
|
|
8167
8167
|
},
|
|
8168
8168
|
{
|
|
8169
|
-
"id":
|
|
8169
|
+
"id": 37094,
|
|
8170
8170
|
"name": "superTokenFactory",
|
|
8171
8171
|
"nodeType": "Identifier",
|
|
8172
8172
|
"overloadedDeclarations": [],
|
|
8173
|
-
"referencedDeclaration":
|
|
8173
|
+
"referencedDeclaration": 36953,
|
|
8174
8174
|
"src": "3559:17:104",
|
|
8175
8175
|
"typeDescriptions": {
|
|
8176
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
8176
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
8177
8177
|
"typeString": "contract SuperTokenFactory"
|
|
8178
8178
|
}
|
|
8179
8179
|
}
|
|
8180
8180
|
],
|
|
8181
|
-
"id":
|
|
8181
|
+
"id": 37095,
|
|
8182
8182
|
"isConstant": false,
|
|
8183
8183
|
"isInlineArray": false,
|
|
8184
8184
|
"isLValue": false,
|
|
@@ -8187,25 +8187,25 @@
|
|
|
8187
8187
|
"nodeType": "TupleExpression",
|
|
8188
8188
|
"src": "3542:35:104",
|
|
8189
8189
|
"typeDescriptions": {
|
|
8190
|
-
"typeIdentifier": "t_tuple$_t_contract$_Superfluid_$
|
|
8190
|
+
"typeIdentifier": "t_tuple$_t_contract$_Superfluid_$34994_$_t_contract$_ConstantFlowAgreementV1_$9802_$_t_contract$_InstantDistributionAgreementV1_$13190_$_t_contract$_SuperTokenFactory_$32067_$",
|
|
8191
8191
|
"typeString": "tuple(contract Superfluid,contract ConstantFlowAgreementV1,contract InstantDistributionAgreementV1,contract SuperTokenFactory)"
|
|
8192
8192
|
}
|
|
8193
8193
|
},
|
|
8194
|
-
"functionReturnParameters":
|
|
8195
|
-
"id":
|
|
8194
|
+
"functionReturnParameters": 37090,
|
|
8195
|
+
"id": 37096,
|
|
8196
8196
|
"nodeType": "Return",
|
|
8197
8197
|
"src": "3535:42:104"
|
|
8198
8198
|
}
|
|
8199
8199
|
]
|
|
8200
8200
|
},
|
|
8201
8201
|
"documentation": {
|
|
8202
|
-
"id":
|
|
8202
|
+
"id": 37076,
|
|
8203
8203
|
"nodeType": "StructuredDocumentation",
|
|
8204
8204
|
"src": "3264:43:104",
|
|
8205
8205
|
"text": "@notice Fetches the framework contracts"
|
|
8206
8206
|
},
|
|
8207
8207
|
"functionSelector": "dfa98ad5",
|
|
8208
|
-
"id":
|
|
8208
|
+
"id": 37098,
|
|
8209
8209
|
"implemented": true,
|
|
8210
8210
|
"kind": "function",
|
|
8211
8211
|
"modifiers": [],
|
|
@@ -8213,44 +8213,44 @@
|
|
|
8213
8213
|
"nameLocation": "3321:12:104",
|
|
8214
8214
|
"nodeType": "FunctionDefinition",
|
|
8215
8215
|
"parameters": {
|
|
8216
|
-
"id":
|
|
8216
|
+
"id": 37077,
|
|
8217
8217
|
"nodeType": "ParameterList",
|
|
8218
8218
|
"parameters": [],
|
|
8219
8219
|
"src": "3333:2:104"
|
|
8220
8220
|
},
|
|
8221
8221
|
"returnParameters": {
|
|
8222
|
-
"id":
|
|
8222
|
+
"id": 37090,
|
|
8223
8223
|
"nodeType": "ParameterList",
|
|
8224
8224
|
"parameters": [
|
|
8225
8225
|
{
|
|
8226
8226
|
"constant": false,
|
|
8227
|
-
"id":
|
|
8227
|
+
"id": 37080,
|
|
8228
8228
|
"mutability": "mutable",
|
|
8229
8229
|
"name": "",
|
|
8230
8230
|
"nameLocation": "-1:-1:-1",
|
|
8231
8231
|
"nodeType": "VariableDeclaration",
|
|
8232
|
-
"scope":
|
|
8232
|
+
"scope": 37098,
|
|
8233
8233
|
"src": "3388:10:104",
|
|
8234
8234
|
"stateVariable": false,
|
|
8235
8235
|
"storageLocation": "default",
|
|
8236
8236
|
"typeDescriptions": {
|
|
8237
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
8237
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
8238
8238
|
"typeString": "contract Superfluid"
|
|
8239
8239
|
},
|
|
8240
8240
|
"typeName": {
|
|
8241
|
-
"id":
|
|
8241
|
+
"id": 37079,
|
|
8242
8242
|
"nodeType": "UserDefinedTypeName",
|
|
8243
8243
|
"pathNode": {
|
|
8244
|
-
"id":
|
|
8244
|
+
"id": 37078,
|
|
8245
8245
|
"name": "Superfluid",
|
|
8246
8246
|
"nodeType": "IdentifierPath",
|
|
8247
|
-
"referencedDeclaration":
|
|
8247
|
+
"referencedDeclaration": 34994,
|
|
8248
8248
|
"src": "3388:10:104"
|
|
8249
8249
|
},
|
|
8250
|
-
"referencedDeclaration":
|
|
8250
|
+
"referencedDeclaration": 34994,
|
|
8251
8251
|
"src": "3388:10:104",
|
|
8252
8252
|
"typeDescriptions": {
|
|
8253
|
-
"typeIdentifier": "t_contract$_Superfluid_$
|
|
8253
|
+
"typeIdentifier": "t_contract$_Superfluid_$34994",
|
|
8254
8254
|
"typeString": "contract Superfluid"
|
|
8255
8255
|
}
|
|
8256
8256
|
},
|
|
@@ -8258,33 +8258,33 @@
|
|
|
8258
8258
|
},
|
|
8259
8259
|
{
|
|
8260
8260
|
"constant": false,
|
|
8261
|
-
"id":
|
|
8261
|
+
"id": 37083,
|
|
8262
8262
|
"mutability": "mutable",
|
|
8263
8263
|
"name": "",
|
|
8264
8264
|
"nameLocation": "-1:-1:-1",
|
|
8265
8265
|
"nodeType": "VariableDeclaration",
|
|
8266
|
-
"scope":
|
|
8266
|
+
"scope": 37098,
|
|
8267
8267
|
"src": "3412:23:104",
|
|
8268
8268
|
"stateVariable": false,
|
|
8269
8269
|
"storageLocation": "default",
|
|
8270
8270
|
"typeDescriptions": {
|
|
8271
|
-
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$
|
|
8271
|
+
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$9802",
|
|
8272
8272
|
"typeString": "contract ConstantFlowAgreementV1"
|
|
8273
8273
|
},
|
|
8274
8274
|
"typeName": {
|
|
8275
|
-
"id":
|
|
8275
|
+
"id": 37082,
|
|
8276
8276
|
"nodeType": "UserDefinedTypeName",
|
|
8277
8277
|
"pathNode": {
|
|
8278
|
-
"id":
|
|
8278
|
+
"id": 37081,
|
|
8279
8279
|
"name": "ConstantFlowAgreementV1",
|
|
8280
8280
|
"nodeType": "IdentifierPath",
|
|
8281
|
-
"referencedDeclaration":
|
|
8281
|
+
"referencedDeclaration": 9802,
|
|
8282
8282
|
"src": "3412:23:104"
|
|
8283
8283
|
},
|
|
8284
|
-
"referencedDeclaration":
|
|
8284
|
+
"referencedDeclaration": 9802,
|
|
8285
8285
|
"src": "3412:23:104",
|
|
8286
8286
|
"typeDescriptions": {
|
|
8287
|
-
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$
|
|
8287
|
+
"typeIdentifier": "t_contract$_ConstantFlowAgreementV1_$9802",
|
|
8288
8288
|
"typeString": "contract ConstantFlowAgreementV1"
|
|
8289
8289
|
}
|
|
8290
8290
|
},
|
|
@@ -8292,33 +8292,33 @@
|
|
|
8292
8292
|
},
|
|
8293
8293
|
{
|
|
8294
8294
|
"constant": false,
|
|
8295
|
-
"id":
|
|
8295
|
+
"id": 37086,
|
|
8296
8296
|
"mutability": "mutable",
|
|
8297
8297
|
"name": "",
|
|
8298
8298
|
"nameLocation": "-1:-1:-1",
|
|
8299
8299
|
"nodeType": "VariableDeclaration",
|
|
8300
|
-
"scope":
|
|
8300
|
+
"scope": 37098,
|
|
8301
8301
|
"src": "3449:30:104",
|
|
8302
8302
|
"stateVariable": false,
|
|
8303
8303
|
"storageLocation": "default",
|
|
8304
8304
|
"typeDescriptions": {
|
|
8305
|
-
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$
|
|
8305
|
+
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$13190",
|
|
8306
8306
|
"typeString": "contract InstantDistributionAgreementV1"
|
|
8307
8307
|
},
|
|
8308
8308
|
"typeName": {
|
|
8309
|
-
"id":
|
|
8309
|
+
"id": 37085,
|
|
8310
8310
|
"nodeType": "UserDefinedTypeName",
|
|
8311
8311
|
"pathNode": {
|
|
8312
|
-
"id":
|
|
8312
|
+
"id": 37084,
|
|
8313
8313
|
"name": "InstantDistributionAgreementV1",
|
|
8314
8314
|
"nodeType": "IdentifierPath",
|
|
8315
|
-
"referencedDeclaration":
|
|
8315
|
+
"referencedDeclaration": 13190,
|
|
8316
8316
|
"src": "3449:30:104"
|
|
8317
8317
|
},
|
|
8318
|
-
"referencedDeclaration":
|
|
8318
|
+
"referencedDeclaration": 13190,
|
|
8319
8319
|
"src": "3449:30:104",
|
|
8320
8320
|
"typeDescriptions": {
|
|
8321
|
-
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$
|
|
8321
|
+
"typeIdentifier": "t_contract$_InstantDistributionAgreementV1_$13190",
|
|
8322
8322
|
"typeString": "contract InstantDistributionAgreementV1"
|
|
8323
8323
|
}
|
|
8324
8324
|
},
|
|
@@ -8326,33 +8326,33 @@
|
|
|
8326
8326
|
},
|
|
8327
8327
|
{
|
|
8328
8328
|
"constant": false,
|
|
8329
|
-
"id":
|
|
8329
|
+
"id": 37089,
|
|
8330
8330
|
"mutability": "mutable",
|
|
8331
8331
|
"name": "",
|
|
8332
8332
|
"nameLocation": "-1:-1:-1",
|
|
8333
8333
|
"nodeType": "VariableDeclaration",
|
|
8334
|
-
"scope":
|
|
8334
|
+
"scope": 37098,
|
|
8335
8335
|
"src": "3493:17:104",
|
|
8336
8336
|
"stateVariable": false,
|
|
8337
8337
|
"storageLocation": "default",
|
|
8338
8338
|
"typeDescriptions": {
|
|
8339
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
8339
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
8340
8340
|
"typeString": "contract SuperTokenFactory"
|
|
8341
8341
|
},
|
|
8342
8342
|
"typeName": {
|
|
8343
|
-
"id":
|
|
8343
|
+
"id": 37088,
|
|
8344
8344
|
"nodeType": "UserDefinedTypeName",
|
|
8345
8345
|
"pathNode": {
|
|
8346
|
-
"id":
|
|
8346
|
+
"id": 37087,
|
|
8347
8347
|
"name": "SuperTokenFactory",
|
|
8348
8348
|
"nodeType": "IdentifierPath",
|
|
8349
|
-
"referencedDeclaration":
|
|
8349
|
+
"referencedDeclaration": 32067,
|
|
8350
8350
|
"src": "3493:17:104"
|
|
8351
8351
|
},
|
|
8352
|
-
"referencedDeclaration":
|
|
8352
|
+
"referencedDeclaration": 32067,
|
|
8353
8353
|
"src": "3493:17:104",
|
|
8354
8354
|
"typeDescriptions": {
|
|
8355
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
8355
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
8356
8356
|
"typeString": "contract SuperTokenFactory"
|
|
8357
8357
|
}
|
|
8358
8358
|
},
|
|
@@ -8361,7 +8361,7 @@
|
|
|
8361
8361
|
],
|
|
8362
8362
|
"src": "3374:146:104"
|
|
8363
8363
|
},
|
|
8364
|
-
"scope":
|
|
8364
|
+
"scope": 37185,
|
|
8365
8365
|
"src": "3312:272:104",
|
|
8366
8366
|
"stateMutability": "view",
|
|
8367
8367
|
"virtual": false,
|
|
@@ -8369,23 +8369,23 @@
|
|
|
8369
8369
|
},
|
|
8370
8370
|
{
|
|
8371
8371
|
"body": {
|
|
8372
|
-
"id":
|
|
8372
|
+
"id": 37183,
|
|
8373
8373
|
"nodeType": "Block",
|
|
8374
8374
|
"src": "3842:539:104",
|
|
8375
8375
|
"statements": [
|
|
8376
8376
|
{
|
|
8377
8377
|
"expression": {
|
|
8378
|
-
"id":
|
|
8378
|
+
"id": 37119,
|
|
8379
8379
|
"isConstant": false,
|
|
8380
8380
|
"isLValue": false,
|
|
8381
8381
|
"isPure": false,
|
|
8382
8382
|
"lValueRequested": false,
|
|
8383
8383
|
"leftHandSide": {
|
|
8384
|
-
"id":
|
|
8384
|
+
"id": 37112,
|
|
8385
8385
|
"name": "token",
|
|
8386
8386
|
"nodeType": "Identifier",
|
|
8387
8387
|
"overloadedDeclarations": [],
|
|
8388
|
-
"referencedDeclaration":
|
|
8388
|
+
"referencedDeclaration": 37107,
|
|
8389
8389
|
"src": "3852:5:104",
|
|
8390
8390
|
"typeDescriptions": {
|
|
8391
8391
|
"typeIdentifier": "t_contract$_ERC20PresetMinterPauser_$1762",
|
|
@@ -8397,11 +8397,11 @@
|
|
|
8397
8397
|
"rightHandSide": {
|
|
8398
8398
|
"arguments": [
|
|
8399
8399
|
{
|
|
8400
|
-
"id":
|
|
8400
|
+
"id": 37116,
|
|
8401
8401
|
"name": "name",
|
|
8402
8402
|
"nodeType": "Identifier",
|
|
8403
8403
|
"overloadedDeclarations": [],
|
|
8404
|
-
"referencedDeclaration":
|
|
8404
|
+
"referencedDeclaration": 37101,
|
|
8405
8405
|
"src": "3888:4:104",
|
|
8406
8406
|
"typeDescriptions": {
|
|
8407
8407
|
"typeIdentifier": "t_string_calldata_ptr",
|
|
@@ -8409,11 +8409,11 @@
|
|
|
8409
8409
|
}
|
|
8410
8410
|
},
|
|
8411
8411
|
{
|
|
8412
|
-
"id":
|
|
8412
|
+
"id": 37117,
|
|
8413
8413
|
"name": "symbol",
|
|
8414
8414
|
"nodeType": "Identifier",
|
|
8415
8415
|
"overloadedDeclarations": [],
|
|
8416
|
-
"referencedDeclaration":
|
|
8416
|
+
"referencedDeclaration": 37103,
|
|
8417
8417
|
"src": "3894:6:104",
|
|
8418
8418
|
"typeDescriptions": {
|
|
8419
8419
|
"typeIdentifier": "t_string_calldata_ptr",
|
|
@@ -8432,7 +8432,7 @@
|
|
|
8432
8432
|
"typeString": "string calldata"
|
|
8433
8433
|
}
|
|
8434
8434
|
],
|
|
8435
|
-
"id":
|
|
8435
|
+
"id": 37115,
|
|
8436
8436
|
"isConstant": false,
|
|
8437
8437
|
"isLValue": false,
|
|
8438
8438
|
"isPure": false,
|
|
@@ -8444,10 +8444,10 @@
|
|
|
8444
8444
|
"typeString": "function (string memory,string memory) returns (contract ERC20PresetMinterPauser)"
|
|
8445
8445
|
},
|
|
8446
8446
|
"typeName": {
|
|
8447
|
-
"id":
|
|
8447
|
+
"id": 37114,
|
|
8448
8448
|
"nodeType": "UserDefinedTypeName",
|
|
8449
8449
|
"pathNode": {
|
|
8450
|
-
"id":
|
|
8450
|
+
"id": 37113,
|
|
8451
8451
|
"name": "ERC20PresetMinterPauser",
|
|
8452
8452
|
"nodeType": "IdentifierPath",
|
|
8453
8453
|
"referencedDeclaration": 1762,
|
|
@@ -8461,7 +8461,7 @@
|
|
|
8461
8461
|
}
|
|
8462
8462
|
}
|
|
8463
8463
|
},
|
|
8464
|
-
"id":
|
|
8464
|
+
"id": 37118,
|
|
8465
8465
|
"isConstant": false,
|
|
8466
8466
|
"isLValue": false,
|
|
8467
8467
|
"isPure": false,
|
|
@@ -8482,7 +8482,7 @@
|
|
|
8482
8482
|
"typeString": "contract ERC20PresetMinterPauser"
|
|
8483
8483
|
}
|
|
8484
8484
|
},
|
|
8485
|
-
"id":
|
|
8485
|
+
"id": 37120,
|
|
8486
8486
|
"nodeType": "ExpressionStatement",
|
|
8487
8487
|
"src": "3852:49:104"
|
|
8488
8488
|
},
|
|
@@ -8494,18 +8494,18 @@
|
|
|
8494
8494
|
"expression": {
|
|
8495
8495
|
"argumentTypes": [],
|
|
8496
8496
|
"expression": {
|
|
8497
|
-
"id":
|
|
8497
|
+
"id": 37124,
|
|
8498
8498
|
"name": "token",
|
|
8499
8499
|
"nodeType": "Identifier",
|
|
8500
8500
|
"overloadedDeclarations": [],
|
|
8501
|
-
"referencedDeclaration":
|
|
8501
|
+
"referencedDeclaration": 37107,
|
|
8502
8502
|
"src": "3927:5:104",
|
|
8503
8503
|
"typeDescriptions": {
|
|
8504
8504
|
"typeIdentifier": "t_contract$_ERC20PresetMinterPauser_$1762",
|
|
8505
8505
|
"typeString": "contract ERC20PresetMinterPauser"
|
|
8506
8506
|
}
|
|
8507
8507
|
},
|
|
8508
|
-
"id":
|
|
8508
|
+
"id": 37125,
|
|
8509
8509
|
"isConstant": false,
|
|
8510
8510
|
"isLValue": false,
|
|
8511
8511
|
"isPure": false,
|
|
@@ -8519,7 +8519,7 @@
|
|
|
8519
8519
|
"typeString": "function () view external returns (bytes32)"
|
|
8520
8520
|
}
|
|
8521
8521
|
},
|
|
8522
|
-
"id":
|
|
8522
|
+
"id": 37126,
|
|
8523
8523
|
"isConstant": false,
|
|
8524
8524
|
"isLValue": false,
|
|
8525
8525
|
"isPure": false,
|
|
@@ -8536,7 +8536,7 @@
|
|
|
8536
8536
|
},
|
|
8537
8537
|
{
|
|
8538
8538
|
"expression": {
|
|
8539
|
-
"id":
|
|
8539
|
+
"id": 37127,
|
|
8540
8540
|
"name": "msg",
|
|
8541
8541
|
"nodeType": "Identifier",
|
|
8542
8542
|
"overloadedDeclarations": [],
|
|
@@ -8547,7 +8547,7 @@
|
|
|
8547
8547
|
"typeString": "msg"
|
|
8548
8548
|
}
|
|
8549
8549
|
},
|
|
8550
|
-
"id":
|
|
8550
|
+
"id": 37128,
|
|
8551
8551
|
"isConstant": false,
|
|
8552
8552
|
"isLValue": false,
|
|
8553
8553
|
"isPure": false,
|
|
@@ -8573,18 +8573,18 @@
|
|
|
8573
8573
|
}
|
|
8574
8574
|
],
|
|
8575
8575
|
"expression": {
|
|
8576
|
-
"id":
|
|
8576
|
+
"id": 37121,
|
|
8577
8577
|
"name": "token",
|
|
8578
8578
|
"nodeType": "Identifier",
|
|
8579
8579
|
"overloadedDeclarations": [],
|
|
8580
|
-
"referencedDeclaration":
|
|
8580
|
+
"referencedDeclaration": 37107,
|
|
8581
8581
|
"src": "3911:5:104",
|
|
8582
8582
|
"typeDescriptions": {
|
|
8583
8583
|
"typeIdentifier": "t_contract$_ERC20PresetMinterPauser_$1762",
|
|
8584
8584
|
"typeString": "contract ERC20PresetMinterPauser"
|
|
8585
8585
|
}
|
|
8586
8586
|
},
|
|
8587
|
-
"id":
|
|
8587
|
+
"id": 37123,
|
|
8588
8588
|
"isConstant": false,
|
|
8589
8589
|
"isLValue": false,
|
|
8590
8590
|
"isPure": false,
|
|
@@ -8598,7 +8598,7 @@
|
|
|
8598
8598
|
"typeString": "function (bytes32,address) external"
|
|
8599
8599
|
}
|
|
8600
8600
|
},
|
|
8601
|
-
"id":
|
|
8601
|
+
"id": 37129,
|
|
8602
8602
|
"isConstant": false,
|
|
8603
8603
|
"isLValue": false,
|
|
8604
8604
|
"isPure": false,
|
|
@@ -8613,7 +8613,7 @@
|
|
|
8613
8613
|
"typeString": "tuple()"
|
|
8614
8614
|
}
|
|
8615
8615
|
},
|
|
8616
|
-
"id":
|
|
8616
|
+
"id": 37130,
|
|
8617
8617
|
"nodeType": "ExpressionStatement",
|
|
8618
8618
|
"src": "3911:55:104"
|
|
8619
8619
|
},
|
|
@@ -8625,18 +8625,18 @@
|
|
|
8625
8625
|
"expression": {
|
|
8626
8626
|
"argumentTypes": [],
|
|
8627
8627
|
"expression": {
|
|
8628
|
-
"id":
|
|
8628
|
+
"id": 37134,
|
|
8629
8629
|
"name": "token",
|
|
8630
8630
|
"nodeType": "Identifier",
|
|
8631
8631
|
"overloadedDeclarations": [],
|
|
8632
|
-
"referencedDeclaration":
|
|
8632
|
+
"referencedDeclaration": 37107,
|
|
8633
8633
|
"src": "3992:5:104",
|
|
8634
8634
|
"typeDescriptions": {
|
|
8635
8635
|
"typeIdentifier": "t_contract$_ERC20PresetMinterPauser_$1762",
|
|
8636
8636
|
"typeString": "contract ERC20PresetMinterPauser"
|
|
8637
8637
|
}
|
|
8638
8638
|
},
|
|
8639
|
-
"id":
|
|
8639
|
+
"id": 37135,
|
|
8640
8640
|
"isConstant": false,
|
|
8641
8641
|
"isLValue": false,
|
|
8642
8642
|
"isPure": false,
|
|
@@ -8650,7 +8650,7 @@
|
|
|
8650
8650
|
"typeString": "function () view external returns (bytes32)"
|
|
8651
8651
|
}
|
|
8652
8652
|
},
|
|
8653
|
-
"id":
|
|
8653
|
+
"id": 37136,
|
|
8654
8654
|
"isConstant": false,
|
|
8655
8655
|
"isLValue": false,
|
|
8656
8656
|
"isPure": false,
|
|
@@ -8667,7 +8667,7 @@
|
|
|
8667
8667
|
},
|
|
8668
8668
|
{
|
|
8669
8669
|
"expression": {
|
|
8670
|
-
"id":
|
|
8670
|
+
"id": 37137,
|
|
8671
8671
|
"name": "msg",
|
|
8672
8672
|
"nodeType": "Identifier",
|
|
8673
8673
|
"overloadedDeclarations": [],
|
|
@@ -8678,7 +8678,7 @@
|
|
|
8678
8678
|
"typeString": "msg"
|
|
8679
8679
|
}
|
|
8680
8680
|
},
|
|
8681
|
-
"id":
|
|
8681
|
+
"id": 37138,
|
|
8682
8682
|
"isConstant": false,
|
|
8683
8683
|
"isLValue": false,
|
|
8684
8684
|
"isPure": false,
|
|
@@ -8704,18 +8704,18 @@
|
|
|
8704
8704
|
}
|
|
8705
8705
|
],
|
|
8706
8706
|
"expression": {
|
|
8707
|
-
"id":
|
|
8707
|
+
"id": 37131,
|
|
8708
8708
|
"name": "token",
|
|
8709
8709
|
"nodeType": "Identifier",
|
|
8710
8710
|
"overloadedDeclarations": [],
|
|
8711
|
-
"referencedDeclaration":
|
|
8711
|
+
"referencedDeclaration": 37107,
|
|
8712
8712
|
"src": "3976:5:104",
|
|
8713
8713
|
"typeDescriptions": {
|
|
8714
8714
|
"typeIdentifier": "t_contract$_ERC20PresetMinterPauser_$1762",
|
|
8715
8715
|
"typeString": "contract ERC20PresetMinterPauser"
|
|
8716
8716
|
}
|
|
8717
8717
|
},
|
|
8718
|
-
"id":
|
|
8718
|
+
"id": 37133,
|
|
8719
8719
|
"isConstant": false,
|
|
8720
8720
|
"isLValue": false,
|
|
8721
8721
|
"isPure": false,
|
|
@@ -8729,7 +8729,7 @@
|
|
|
8729
8729
|
"typeString": "function (bytes32,address) external"
|
|
8730
8730
|
}
|
|
8731
8731
|
},
|
|
8732
|
-
"id":
|
|
8732
|
+
"id": 37139,
|
|
8733
8733
|
"isConstant": false,
|
|
8734
8734
|
"isLValue": false,
|
|
8735
8735
|
"isPure": false,
|
|
@@ -8744,7 +8744,7 @@
|
|
|
8744
8744
|
"typeString": "tuple()"
|
|
8745
8745
|
}
|
|
8746
8746
|
},
|
|
8747
|
-
"id":
|
|
8747
|
+
"id": 37140,
|
|
8748
8748
|
"nodeType": "ExpressionStatement",
|
|
8749
8749
|
"src": "3976:48:104"
|
|
8750
8750
|
},
|
|
@@ -8756,18 +8756,18 @@
|
|
|
8756
8756
|
"expression": {
|
|
8757
8757
|
"argumentTypes": [],
|
|
8758
8758
|
"expression": {
|
|
8759
|
-
"id":
|
|
8759
|
+
"id": 37144,
|
|
8760
8760
|
"name": "token",
|
|
8761
8761
|
"nodeType": "Identifier",
|
|
8762
8762
|
"overloadedDeclarations": [],
|
|
8763
|
-
"referencedDeclaration":
|
|
8763
|
+
"referencedDeclaration": 37107,
|
|
8764
8764
|
"src": "4050:5:104",
|
|
8765
8765
|
"typeDescriptions": {
|
|
8766
8766
|
"typeIdentifier": "t_contract$_ERC20PresetMinterPauser_$1762",
|
|
8767
8767
|
"typeString": "contract ERC20PresetMinterPauser"
|
|
8768
8768
|
}
|
|
8769
8769
|
},
|
|
8770
|
-
"id":
|
|
8770
|
+
"id": 37145,
|
|
8771
8771
|
"isConstant": false,
|
|
8772
8772
|
"isLValue": false,
|
|
8773
8773
|
"isPure": false,
|
|
@@ -8781,7 +8781,7 @@
|
|
|
8781
8781
|
"typeString": "function () view external returns (bytes32)"
|
|
8782
8782
|
}
|
|
8783
8783
|
},
|
|
8784
|
-
"id":
|
|
8784
|
+
"id": 37146,
|
|
8785
8785
|
"isConstant": false,
|
|
8786
8786
|
"isLValue": false,
|
|
8787
8787
|
"isPure": false,
|
|
@@ -8798,7 +8798,7 @@
|
|
|
8798
8798
|
},
|
|
8799
8799
|
{
|
|
8800
8800
|
"expression": {
|
|
8801
|
-
"id":
|
|
8801
|
+
"id": 37147,
|
|
8802
8802
|
"name": "msg",
|
|
8803
8803
|
"nodeType": "Identifier",
|
|
8804
8804
|
"overloadedDeclarations": [],
|
|
@@ -8809,7 +8809,7 @@
|
|
|
8809
8809
|
"typeString": "msg"
|
|
8810
8810
|
}
|
|
8811
8811
|
},
|
|
8812
|
-
"id":
|
|
8812
|
+
"id": 37148,
|
|
8813
8813
|
"isConstant": false,
|
|
8814
8814
|
"isLValue": false,
|
|
8815
8815
|
"isPure": false,
|
|
@@ -8835,18 +8835,18 @@
|
|
|
8835
8835
|
}
|
|
8836
8836
|
],
|
|
8837
8837
|
"expression": {
|
|
8838
|
-
"id":
|
|
8838
|
+
"id": 37141,
|
|
8839
8839
|
"name": "token",
|
|
8840
8840
|
"nodeType": "Identifier",
|
|
8841
8841
|
"overloadedDeclarations": [],
|
|
8842
|
-
"referencedDeclaration":
|
|
8842
|
+
"referencedDeclaration": 37107,
|
|
8843
8843
|
"src": "4034:5:104",
|
|
8844
8844
|
"typeDescriptions": {
|
|
8845
8845
|
"typeIdentifier": "t_contract$_ERC20PresetMinterPauser_$1762",
|
|
8846
8846
|
"typeString": "contract ERC20PresetMinterPauser"
|
|
8847
8847
|
}
|
|
8848
8848
|
},
|
|
8849
|
-
"id":
|
|
8849
|
+
"id": 37143,
|
|
8850
8850
|
"isConstant": false,
|
|
8851
8851
|
"isLValue": false,
|
|
8852
8852
|
"isPure": false,
|
|
@@ -8860,7 +8860,7 @@
|
|
|
8860
8860
|
"typeString": "function (bytes32,address) external"
|
|
8861
8861
|
}
|
|
8862
8862
|
},
|
|
8863
|
-
"id":
|
|
8863
|
+
"id": 37149,
|
|
8864
8864
|
"isConstant": false,
|
|
8865
8865
|
"isLValue": false,
|
|
8866
8866
|
"isPure": false,
|
|
@@ -8875,26 +8875,26 @@
|
|
|
8875
8875
|
"typeString": "tuple()"
|
|
8876
8876
|
}
|
|
8877
8877
|
},
|
|
8878
|
-
"id":
|
|
8878
|
+
"id": 37150,
|
|
8879
8879
|
"nodeType": "ExpressionStatement",
|
|
8880
8880
|
"src": "4034:48:104"
|
|
8881
8881
|
},
|
|
8882
8882
|
{
|
|
8883
8883
|
"expression": {
|
|
8884
|
-
"id":
|
|
8884
|
+
"id": 37181,
|
|
8885
8885
|
"isConstant": false,
|
|
8886
8886
|
"isLValue": false,
|
|
8887
8887
|
"isPure": false,
|
|
8888
8888
|
"lValueRequested": false,
|
|
8889
8889
|
"leftHandSide": {
|
|
8890
|
-
"id":
|
|
8890
|
+
"id": 37151,
|
|
8891
8891
|
"name": "superToken",
|
|
8892
8892
|
"nodeType": "Identifier",
|
|
8893
8893
|
"overloadedDeclarations": [],
|
|
8894
|
-
"referencedDeclaration":
|
|
8894
|
+
"referencedDeclaration": 37110,
|
|
8895
8895
|
"src": "4093:10:104",
|
|
8896
8896
|
"typeDescriptions": {
|
|
8897
|
-
"typeIdentifier": "t_contract$_SuperToken_$
|
|
8897
|
+
"typeIdentifier": "t_contract$_SuperToken_$31692",
|
|
8898
8898
|
"typeString": "contract SuperToken"
|
|
8899
8899
|
}
|
|
8900
8900
|
},
|
|
@@ -8911,11 +8911,11 @@
|
|
|
8911
8911
|
{
|
|
8912
8912
|
"arguments": [
|
|
8913
8913
|
{
|
|
8914
|
-
"id":
|
|
8914
|
+
"id": 37160,
|
|
8915
8915
|
"name": "token",
|
|
8916
8916
|
"nodeType": "Identifier",
|
|
8917
8917
|
"overloadedDeclarations": [],
|
|
8918
|
-
"referencedDeclaration":
|
|
8918
|
+
"referencedDeclaration": 37107,
|
|
8919
8919
|
"src": "4215:5:104",
|
|
8920
8920
|
"typeDescriptions": {
|
|
8921
8921
|
"typeIdentifier": "t_contract$_ERC20PresetMinterPauser_$1762",
|
|
@@ -8930,7 +8930,7 @@
|
|
|
8930
8930
|
"typeString": "contract ERC20PresetMinterPauser"
|
|
8931
8931
|
}
|
|
8932
8932
|
],
|
|
8933
|
-
"id":
|
|
8933
|
+
"id": 37159,
|
|
8934
8934
|
"isConstant": false,
|
|
8935
8935
|
"isLValue": false,
|
|
8936
8936
|
"isPure": true,
|
|
@@ -8942,14 +8942,14 @@
|
|
|
8942
8942
|
"typeString": "type(address)"
|
|
8943
8943
|
},
|
|
8944
8944
|
"typeName": {
|
|
8945
|
-
"id":
|
|
8945
|
+
"id": 37158,
|
|
8946
8946
|
"name": "address",
|
|
8947
8947
|
"nodeType": "ElementaryTypeName",
|
|
8948
8948
|
"src": "4207:7:104",
|
|
8949
8949
|
"typeDescriptions": {}
|
|
8950
8950
|
}
|
|
8951
8951
|
},
|
|
8952
|
-
"id":
|
|
8952
|
+
"id": 37161,
|
|
8953
8953
|
"isConstant": false,
|
|
8954
8954
|
"isLValue": false,
|
|
8955
8955
|
"isPure": false,
|
|
@@ -8972,18 +8972,18 @@
|
|
|
8972
8972
|
"typeString": "address"
|
|
8973
8973
|
}
|
|
8974
8974
|
],
|
|
8975
|
-
"id":
|
|
8975
|
+
"id": 37157,
|
|
8976
8976
|
"name": "ERC20WithTokenInfo",
|
|
8977
8977
|
"nodeType": "Identifier",
|
|
8978
8978
|
"overloadedDeclarations": [],
|
|
8979
|
-
"referencedDeclaration":
|
|
8979
|
+
"referencedDeclaration": 19411,
|
|
8980
8980
|
"src": "4188:18:104",
|
|
8981
8981
|
"typeDescriptions": {
|
|
8982
|
-
"typeIdentifier": "t_type$_t_contract$_ERC20WithTokenInfo_$
|
|
8982
|
+
"typeIdentifier": "t_type$_t_contract$_ERC20WithTokenInfo_$19411_$",
|
|
8983
8983
|
"typeString": "type(contract ERC20WithTokenInfo)"
|
|
8984
8984
|
}
|
|
8985
8985
|
},
|
|
8986
|
-
"id":
|
|
8986
|
+
"id": 37162,
|
|
8987
8987
|
"isConstant": false,
|
|
8988
8988
|
"isLValue": false,
|
|
8989
8989
|
"isPure": false,
|
|
@@ -8994,60 +8994,60 @@
|
|
|
8994
8994
|
"src": "4188:34:104",
|
|
8995
8995
|
"tryCall": false,
|
|
8996
8996
|
"typeDescriptions": {
|
|
8997
|
-
"typeIdentifier": "t_contract$_ERC20WithTokenInfo_$
|
|
8997
|
+
"typeIdentifier": "t_contract$_ERC20WithTokenInfo_$19411",
|
|
8998
8998
|
"typeString": "contract ERC20WithTokenInfo"
|
|
8999
8999
|
}
|
|
9000
9000
|
},
|
|
9001
9001
|
{
|
|
9002
9002
|
"expression": {
|
|
9003
9003
|
"expression": {
|
|
9004
|
-
"id":
|
|
9004
|
+
"id": 37163,
|
|
9005
9005
|
"name": "ISuperTokenFactory",
|
|
9006
9006
|
"nodeType": "Identifier",
|
|
9007
9007
|
"overloadedDeclarations": [],
|
|
9008
|
-
"referencedDeclaration":
|
|
9008
|
+
"referencedDeclaration": 18528,
|
|
9009
9009
|
"src": "4236:18:104",
|
|
9010
9010
|
"typeDescriptions": {
|
|
9011
|
-
"typeIdentifier": "t_type$_t_contract$_ISuperTokenFactory_$
|
|
9011
|
+
"typeIdentifier": "t_type$_t_contract$_ISuperTokenFactory_$18528_$",
|
|
9012
9012
|
"typeString": "type(contract ISuperTokenFactory)"
|
|
9013
9013
|
}
|
|
9014
9014
|
},
|
|
9015
|
-
"id":
|
|
9015
|
+
"id": 37164,
|
|
9016
9016
|
"isConstant": false,
|
|
9017
9017
|
"isLValue": false,
|
|
9018
9018
|
"isPure": false,
|
|
9019
9019
|
"lValueRequested": false,
|
|
9020
9020
|
"memberName": "Upgradability",
|
|
9021
9021
|
"nodeType": "MemberAccess",
|
|
9022
|
-
"referencedDeclaration":
|
|
9022
|
+
"referencedDeclaration": 18468,
|
|
9023
9023
|
"src": "4236:32:104",
|
|
9024
9024
|
"typeDescriptions": {
|
|
9025
|
-
"typeIdentifier": "t_type$_t_enum$_Upgradability_$
|
|
9025
|
+
"typeIdentifier": "t_type$_t_enum$_Upgradability_$18468_$",
|
|
9026
9026
|
"typeString": "type(enum ISuperTokenFactory.Upgradability)"
|
|
9027
9027
|
}
|
|
9028
9028
|
},
|
|
9029
|
-
"id":
|
|
9029
|
+
"id": 37165,
|
|
9030
9030
|
"isConstant": false,
|
|
9031
9031
|
"isLValue": false,
|
|
9032
9032
|
"isPure": true,
|
|
9033
9033
|
"lValueRequested": false,
|
|
9034
9034
|
"memberName": "SEMI_UPGRADABLE",
|
|
9035
9035
|
"nodeType": "MemberAccess",
|
|
9036
|
-
"referencedDeclaration":
|
|
9036
|
+
"referencedDeclaration": 18466,
|
|
9037
9037
|
"src": "4236:48:104",
|
|
9038
9038
|
"typeDescriptions": {
|
|
9039
|
-
"typeIdentifier": "t_enum$_Upgradability_$
|
|
9039
|
+
"typeIdentifier": "t_enum$_Upgradability_$18468",
|
|
9040
9040
|
"typeString": "enum ISuperTokenFactory.Upgradability"
|
|
9041
9041
|
}
|
|
9042
9042
|
},
|
|
9043
9043
|
{
|
|
9044
9044
|
"arguments": [
|
|
9045
9045
|
{
|
|
9046
|
-
"id":
|
|
9046
|
+
"id": 37169,
|
|
9047
9047
|
"name": "name",
|
|
9048
9048
|
"nodeType": "Identifier",
|
|
9049
9049
|
"overloadedDeclarations": [],
|
|
9050
|
-
"referencedDeclaration":
|
|
9050
|
+
"referencedDeclaration": 37101,
|
|
9051
9051
|
"src": "4312:4:104",
|
|
9052
9052
|
"typeDescriptions": {
|
|
9053
9053
|
"typeIdentifier": "t_string_calldata_ptr",
|
|
@@ -9056,7 +9056,7 @@
|
|
|
9056
9056
|
},
|
|
9057
9057
|
{
|
|
9058
9058
|
"hexValue": "78",
|
|
9059
|
-
"id":
|
|
9059
|
+
"id": 37170,
|
|
9060
9060
|
"isConstant": false,
|
|
9061
9061
|
"isLValue": false,
|
|
9062
9062
|
"isPure": true,
|
|
@@ -9083,7 +9083,7 @@
|
|
|
9083
9083
|
}
|
|
9084
9084
|
],
|
|
9085
9085
|
"expression": {
|
|
9086
|
-
"id":
|
|
9086
|
+
"id": 37167,
|
|
9087
9087
|
"isConstant": false,
|
|
9088
9088
|
"isLValue": false,
|
|
9089
9089
|
"isPure": true,
|
|
@@ -9095,14 +9095,14 @@
|
|
|
9095
9095
|
"typeString": "type(string storage pointer)"
|
|
9096
9096
|
},
|
|
9097
9097
|
"typeName": {
|
|
9098
|
-
"id":
|
|
9098
|
+
"id": 37166,
|
|
9099
9099
|
"name": "string",
|
|
9100
9100
|
"nodeType": "ElementaryTypeName",
|
|
9101
9101
|
"src": "4298:6:104",
|
|
9102
9102
|
"typeDescriptions": {}
|
|
9103
9103
|
}
|
|
9104
9104
|
},
|
|
9105
|
-
"id":
|
|
9105
|
+
"id": 37168,
|
|
9106
9106
|
"isConstant": false,
|
|
9107
9107
|
"isLValue": false,
|
|
9108
9108
|
"isPure": false,
|
|
@@ -9115,7 +9115,7 @@
|
|
|
9115
9115
|
"typeString": "function () pure returns (string memory)"
|
|
9116
9116
|
}
|
|
9117
9117
|
},
|
|
9118
|
-
"id":
|
|
9118
|
+
"id": 37171,
|
|
9119
9119
|
"isConstant": false,
|
|
9120
9120
|
"isLValue": false,
|
|
9121
9121
|
"isPure": false,
|
|
@@ -9133,11 +9133,11 @@
|
|
|
9133
9133
|
{
|
|
9134
9134
|
"arguments": [
|
|
9135
9135
|
{
|
|
9136
|
-
"id":
|
|
9136
|
+
"id": 37175,
|
|
9137
9137
|
"name": "symbol",
|
|
9138
9138
|
"nodeType": "Identifier",
|
|
9139
9139
|
"overloadedDeclarations": [],
|
|
9140
|
-
"referencedDeclaration":
|
|
9140
|
+
"referencedDeclaration": 37103,
|
|
9141
9141
|
"src": "4350:6:104",
|
|
9142
9142
|
"typeDescriptions": {
|
|
9143
9143
|
"typeIdentifier": "t_string_calldata_ptr",
|
|
@@ -9146,7 +9146,7 @@
|
|
|
9146
9146
|
},
|
|
9147
9147
|
{
|
|
9148
9148
|
"hexValue": "78",
|
|
9149
|
-
"id":
|
|
9149
|
+
"id": 37176,
|
|
9150
9150
|
"isConstant": false,
|
|
9151
9151
|
"isLValue": false,
|
|
9152
9152
|
"isPure": true,
|
|
@@ -9173,7 +9173,7 @@
|
|
|
9173
9173
|
}
|
|
9174
9174
|
],
|
|
9175
9175
|
"expression": {
|
|
9176
|
-
"id":
|
|
9176
|
+
"id": 37173,
|
|
9177
9177
|
"isConstant": false,
|
|
9178
9178
|
"isLValue": false,
|
|
9179
9179
|
"isPure": true,
|
|
@@ -9185,14 +9185,14 @@
|
|
|
9185
9185
|
"typeString": "type(string storage pointer)"
|
|
9186
9186
|
},
|
|
9187
9187
|
"typeName": {
|
|
9188
|
-
"id":
|
|
9188
|
+
"id": 37172,
|
|
9189
9189
|
"name": "string",
|
|
9190
9190
|
"nodeType": "ElementaryTypeName",
|
|
9191
9191
|
"src": "4336:6:104",
|
|
9192
9192
|
"typeDescriptions": {}
|
|
9193
9193
|
}
|
|
9194
9194
|
},
|
|
9195
|
-
"id":
|
|
9195
|
+
"id": 37174,
|
|
9196
9196
|
"isConstant": false,
|
|
9197
9197
|
"isLValue": false,
|
|
9198
9198
|
"isPure": false,
|
|
@@ -9205,7 +9205,7 @@
|
|
|
9205
9205
|
"typeString": "function () pure returns (string memory)"
|
|
9206
9206
|
}
|
|
9207
9207
|
},
|
|
9208
|
-
"id":
|
|
9208
|
+
"id": 37177,
|
|
9209
9209
|
"isConstant": false,
|
|
9210
9210
|
"isLValue": false,
|
|
9211
9211
|
"isPure": false,
|
|
@@ -9224,11 +9224,11 @@
|
|
|
9224
9224
|
"expression": {
|
|
9225
9225
|
"argumentTypes": [
|
|
9226
9226
|
{
|
|
9227
|
-
"typeIdentifier": "t_contract$_ERC20WithTokenInfo_$
|
|
9227
|
+
"typeIdentifier": "t_contract$_ERC20WithTokenInfo_$19411",
|
|
9228
9228
|
"typeString": "contract ERC20WithTokenInfo"
|
|
9229
9229
|
},
|
|
9230
9230
|
{
|
|
9231
|
-
"typeIdentifier": "t_enum$_Upgradability_$
|
|
9231
|
+
"typeIdentifier": "t_enum$_Upgradability_$18468",
|
|
9232
9232
|
"typeString": "enum ISuperTokenFactory.Upgradability"
|
|
9233
9233
|
},
|
|
9234
9234
|
{
|
|
@@ -9241,32 +9241,32 @@
|
|
|
9241
9241
|
}
|
|
9242
9242
|
],
|
|
9243
9243
|
"expression": {
|
|
9244
|
-
"id":
|
|
9244
|
+
"id": 37155,
|
|
9245
9245
|
"name": "superTokenFactory",
|
|
9246
9246
|
"nodeType": "Identifier",
|
|
9247
9247
|
"overloadedDeclarations": [],
|
|
9248
|
-
"referencedDeclaration":
|
|
9248
|
+
"referencedDeclaration": 36953,
|
|
9249
9249
|
"src": "4138:17:104",
|
|
9250
9250
|
"typeDescriptions": {
|
|
9251
|
-
"typeIdentifier": "t_contract$_SuperTokenFactory_$
|
|
9251
|
+
"typeIdentifier": "t_contract$_SuperTokenFactory_$32067",
|
|
9252
9252
|
"typeString": "contract SuperTokenFactory"
|
|
9253
9253
|
}
|
|
9254
9254
|
},
|
|
9255
|
-
"id":
|
|
9255
|
+
"id": 37156,
|
|
9256
9256
|
"isConstant": false,
|
|
9257
9257
|
"isLValue": false,
|
|
9258
9258
|
"isPure": false,
|
|
9259
9259
|
"lValueRequested": false,
|
|
9260
9260
|
"memberName": "createERC20Wrapper",
|
|
9261
9261
|
"nodeType": "MemberAccess",
|
|
9262
|
-
"referencedDeclaration":
|
|
9262
|
+
"referencedDeclaration": 31973,
|
|
9263
9263
|
"src": "4138:36:104",
|
|
9264
9264
|
"typeDescriptions": {
|
|
9265
|
-
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20WithTokenInfo_$
|
|
9265
|
+
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20WithTokenInfo_$19411_$_t_enum$_Upgradability_$18468_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_ISuperToken_$18439_$",
|
|
9266
9266
|
"typeString": "function (contract ERC20WithTokenInfo,enum ISuperTokenFactory.Upgradability,string memory,string memory) external returns (contract ISuperToken)"
|
|
9267
9267
|
}
|
|
9268
9268
|
},
|
|
9269
|
-
"id":
|
|
9269
|
+
"id": 37178,
|
|
9270
9270
|
"isConstant": false,
|
|
9271
9271
|
"isLValue": false,
|
|
9272
9272
|
"isPure": false,
|
|
@@ -9277,7 +9277,7 @@
|
|
|
9277
9277
|
"src": "4138:225:104",
|
|
9278
9278
|
"tryCall": false,
|
|
9279
9279
|
"typeDescriptions": {
|
|
9280
|
-
"typeIdentifier": "t_contract$_ISuperToken_$
|
|
9280
|
+
"typeIdentifier": "t_contract$_ISuperToken_$18439",
|
|
9281
9281
|
"typeString": "contract ISuperToken"
|
|
9282
9282
|
}
|
|
9283
9283
|
}
|
|
@@ -9285,11 +9285,11 @@
|
|
|
9285
9285
|
"expression": {
|
|
9286
9286
|
"argumentTypes": [
|
|
9287
9287
|
{
|
|
9288
|
-
"typeIdentifier": "t_contract$_ISuperToken_$
|
|
9288
|
+
"typeIdentifier": "t_contract$_ISuperToken_$18439",
|
|
9289
9289
|
"typeString": "contract ISuperToken"
|
|
9290
9290
|
}
|
|
9291
9291
|
],
|
|
9292
|
-
"id":
|
|
9292
|
+
"id": 37154,
|
|
9293
9293
|
"isConstant": false,
|
|
9294
9294
|
"isLValue": false,
|
|
9295
9295
|
"isPure": true,
|
|
@@ -9301,14 +9301,14 @@
|
|
|
9301
9301
|
"typeString": "type(address)"
|
|
9302
9302
|
},
|
|
9303
9303
|
"typeName": {
|
|
9304
|
-
"id":
|
|
9304
|
+
"id": 37153,
|
|
9305
9305
|
"name": "address",
|
|
9306
9306
|
"nodeType": "ElementaryTypeName",
|
|
9307
9307
|
"src": "4117:7:104",
|
|
9308
9308
|
"typeDescriptions": {}
|
|
9309
9309
|
}
|
|
9310
9310
|
},
|
|
9311
|
-
"id":
|
|
9311
|
+
"id": 37179,
|
|
9312
9312
|
"isConstant": false,
|
|
9313
9313
|
"isLValue": false,
|
|
9314
9314
|
"isPure": false,
|
|
@@ -9331,18 +9331,18 @@
|
|
|
9331
9331
|
"typeString": "address"
|
|
9332
9332
|
}
|
|
9333
9333
|
],
|
|
9334
|
-
"id":
|
|
9334
|
+
"id": 37152,
|
|
9335
9335
|
"name": "SuperToken",
|
|
9336
9336
|
"nodeType": "Identifier",
|
|
9337
9337
|
"overloadedDeclarations": [],
|
|
9338
|
-
"referencedDeclaration":
|
|
9338
|
+
"referencedDeclaration": 31692,
|
|
9339
9339
|
"src": "4106:10:104",
|
|
9340
9340
|
"typeDescriptions": {
|
|
9341
|
-
"typeIdentifier": "t_type$_t_contract$_SuperToken_$
|
|
9341
|
+
"typeIdentifier": "t_type$_t_contract$_SuperToken_$31692_$",
|
|
9342
9342
|
"typeString": "type(contract SuperToken)"
|
|
9343
9343
|
}
|
|
9344
9344
|
},
|
|
9345
|
-
"id":
|
|
9345
|
+
"id": 37180,
|
|
9346
9346
|
"isConstant": false,
|
|
9347
9347
|
"isLValue": false,
|
|
9348
9348
|
"isPure": false,
|
|
@@ -9353,30 +9353,30 @@
|
|
|
9353
9353
|
"src": "4106:268:104",
|
|
9354
9354
|
"tryCall": false,
|
|
9355
9355
|
"typeDescriptions": {
|
|
9356
|
-
"typeIdentifier": "t_contract$_SuperToken_$
|
|
9356
|
+
"typeIdentifier": "t_contract$_SuperToken_$31692",
|
|
9357
9357
|
"typeString": "contract SuperToken"
|
|
9358
9358
|
}
|
|
9359
9359
|
},
|
|
9360
9360
|
"src": "4093:281:104",
|
|
9361
9361
|
"typeDescriptions": {
|
|
9362
|
-
"typeIdentifier": "t_contract$_SuperToken_$
|
|
9362
|
+
"typeIdentifier": "t_contract$_SuperToken_$31692",
|
|
9363
9363
|
"typeString": "contract SuperToken"
|
|
9364
9364
|
}
|
|
9365
9365
|
},
|
|
9366
|
-
"id":
|
|
9366
|
+
"id": 37182,
|
|
9367
9367
|
"nodeType": "ExpressionStatement",
|
|
9368
9368
|
"src": "4093:281:104"
|
|
9369
9369
|
}
|
|
9370
9370
|
]
|
|
9371
9371
|
},
|
|
9372
9372
|
"documentation": {
|
|
9373
|
-
"id":
|
|
9373
|
+
"id": 37099,
|
|
9374
9374
|
"nodeType": "StructuredDocumentation",
|
|
9375
9375
|
"src": "3590:42:104",
|
|
9376
9376
|
"text": "@notice Deploy new wrapper super token"
|
|
9377
9377
|
},
|
|
9378
9378
|
"functionSelector": "845531a4",
|
|
9379
|
-
"id":
|
|
9379
|
+
"id": 37184,
|
|
9380
9380
|
"implemented": true,
|
|
9381
9381
|
"kind": "function",
|
|
9382
9382
|
"modifiers": [],
|
|
@@ -9384,17 +9384,17 @@
|
|
|
9384
9384
|
"nameLocation": "3646:23:104",
|
|
9385
9385
|
"nodeType": "FunctionDefinition",
|
|
9386
9386
|
"parameters": {
|
|
9387
|
-
"id":
|
|
9387
|
+
"id": 37104,
|
|
9388
9388
|
"nodeType": "ParameterList",
|
|
9389
9389
|
"parameters": [
|
|
9390
9390
|
{
|
|
9391
9391
|
"constant": false,
|
|
9392
|
-
"id":
|
|
9392
|
+
"id": 37101,
|
|
9393
9393
|
"mutability": "mutable",
|
|
9394
9394
|
"name": "name",
|
|
9395
9395
|
"nameLocation": "3686:4:104",
|
|
9396
9396
|
"nodeType": "VariableDeclaration",
|
|
9397
|
-
"scope":
|
|
9397
|
+
"scope": 37184,
|
|
9398
9398
|
"src": "3670:20:104",
|
|
9399
9399
|
"stateVariable": false,
|
|
9400
9400
|
"storageLocation": "calldata",
|
|
@@ -9403,7 +9403,7 @@
|
|
|
9403
9403
|
"typeString": "string"
|
|
9404
9404
|
},
|
|
9405
9405
|
"typeName": {
|
|
9406
|
-
"id":
|
|
9406
|
+
"id": 37100,
|
|
9407
9407
|
"name": "string",
|
|
9408
9408
|
"nodeType": "ElementaryTypeName",
|
|
9409
9409
|
"src": "3670:6:104",
|
|
@@ -9416,12 +9416,12 @@
|
|
|
9416
9416
|
},
|
|
9417
9417
|
{
|
|
9418
9418
|
"constant": false,
|
|
9419
|
-
"id":
|
|
9419
|
+
"id": 37103,
|
|
9420
9420
|
"mutability": "mutable",
|
|
9421
9421
|
"name": "symbol",
|
|
9422
9422
|
"nameLocation": "3708:6:104",
|
|
9423
9423
|
"nodeType": "VariableDeclaration",
|
|
9424
|
-
"scope":
|
|
9424
|
+
"scope": 37184,
|
|
9425
9425
|
"src": "3692:22:104",
|
|
9426
9426
|
"stateVariable": false,
|
|
9427
9427
|
"storageLocation": "calldata",
|
|
@@ -9430,7 +9430,7 @@
|
|
|
9430
9430
|
"typeString": "string"
|
|
9431
9431
|
},
|
|
9432
9432
|
"typeName": {
|
|
9433
|
-
"id":
|
|
9433
|
+
"id": 37102,
|
|
9434
9434
|
"name": "string",
|
|
9435
9435
|
"nodeType": "ElementaryTypeName",
|
|
9436
9436
|
"src": "3692:6:104",
|
|
@@ -9445,17 +9445,17 @@
|
|
|
9445
9445
|
"src": "3669:46:104"
|
|
9446
9446
|
},
|
|
9447
9447
|
"returnParameters": {
|
|
9448
|
-
"id":
|
|
9448
|
+
"id": 37111,
|
|
9449
9449
|
"nodeType": "ParameterList",
|
|
9450
9450
|
"parameters": [
|
|
9451
9451
|
{
|
|
9452
9452
|
"constant": false,
|
|
9453
|
-
"id":
|
|
9453
|
+
"id": 37107,
|
|
9454
9454
|
"mutability": "mutable",
|
|
9455
9455
|
"name": "token",
|
|
9456
9456
|
"nameLocation": "3787:5:104",
|
|
9457
9457
|
"nodeType": "VariableDeclaration",
|
|
9458
|
-
"scope":
|
|
9458
|
+
"scope": 37184,
|
|
9459
9459
|
"src": "3763:29:104",
|
|
9460
9460
|
"stateVariable": false,
|
|
9461
9461
|
"storageLocation": "default",
|
|
@@ -9464,10 +9464,10 @@
|
|
|
9464
9464
|
"typeString": "contract ERC20PresetMinterPauser"
|
|
9465
9465
|
},
|
|
9466
9466
|
"typeName": {
|
|
9467
|
-
"id":
|
|
9467
|
+
"id": 37106,
|
|
9468
9468
|
"nodeType": "UserDefinedTypeName",
|
|
9469
9469
|
"pathNode": {
|
|
9470
|
-
"id":
|
|
9470
|
+
"id": 37105,
|
|
9471
9471
|
"name": "ERC20PresetMinterPauser",
|
|
9472
9472
|
"nodeType": "IdentifierPath",
|
|
9473
9473
|
"referencedDeclaration": 1762,
|
|
@@ -9484,33 +9484,33 @@
|
|
|
9484
9484
|
},
|
|
9485
9485
|
{
|
|
9486
9486
|
"constant": false,
|
|
9487
|
-
"id":
|
|
9487
|
+
"id": 37110,
|
|
9488
9488
|
"mutability": "mutable",
|
|
9489
9489
|
"name": "superToken",
|
|
9490
9490
|
"nameLocation": "3817:10:104",
|
|
9491
9491
|
"nodeType": "VariableDeclaration",
|
|
9492
|
-
"scope":
|
|
9492
|
+
"scope": 37184,
|
|
9493
9493
|
"src": "3806:21:104",
|
|
9494
9494
|
"stateVariable": false,
|
|
9495
9495
|
"storageLocation": "default",
|
|
9496
9496
|
"typeDescriptions": {
|
|
9497
|
-
"typeIdentifier": "t_contract$_SuperToken_$
|
|
9497
|
+
"typeIdentifier": "t_contract$_SuperToken_$31692",
|
|
9498
9498
|
"typeString": "contract SuperToken"
|
|
9499
9499
|
},
|
|
9500
9500
|
"typeName": {
|
|
9501
|
-
"id":
|
|
9501
|
+
"id": 37109,
|
|
9502
9502
|
"nodeType": "UserDefinedTypeName",
|
|
9503
9503
|
"pathNode": {
|
|
9504
|
-
"id":
|
|
9504
|
+
"id": 37108,
|
|
9505
9505
|
"name": "SuperToken",
|
|
9506
9506
|
"nodeType": "IdentifierPath",
|
|
9507
|
-
"referencedDeclaration":
|
|
9507
|
+
"referencedDeclaration": 31692,
|
|
9508
9508
|
"src": "3806:10:104"
|
|
9509
9509
|
},
|
|
9510
|
-
"referencedDeclaration":
|
|
9510
|
+
"referencedDeclaration": 31692,
|
|
9511
9511
|
"src": "3806:10:104",
|
|
9512
9512
|
"typeDescriptions": {
|
|
9513
|
-
"typeIdentifier": "t_contract$_SuperToken_$
|
|
9513
|
+
"typeIdentifier": "t_contract$_SuperToken_$31692",
|
|
9514
9514
|
"typeString": "contract SuperToken"
|
|
9515
9515
|
}
|
|
9516
9516
|
},
|
|
@@ -9519,14 +9519,14 @@
|
|
|
9519
9519
|
],
|
|
9520
9520
|
"src": "3749:88:104"
|
|
9521
9521
|
},
|
|
9522
|
-
"scope":
|
|
9522
|
+
"scope": 37185,
|
|
9523
9523
|
"src": "3637:744:104",
|
|
9524
9524
|
"stateMutability": "nonpayable",
|
|
9525
9525
|
"virtual": false,
|
|
9526
9526
|
"visibility": "external"
|
|
9527
9527
|
}
|
|
9528
9528
|
],
|
|
9529
|
-
"scope":
|
|
9529
|
+
"scope": 37186,
|
|
9530
9530
|
"src": "860:3524:104",
|
|
9531
9531
|
"usedErrors": []
|
|
9532
9532
|
}
|
|
@@ -9539,7 +9539,7 @@
|
|
|
9539
9539
|
},
|
|
9540
9540
|
"networks": {},
|
|
9541
9541
|
"schemaVersion": "3.4.7",
|
|
9542
|
-
"updatedAt": "2022-05-
|
|
9542
|
+
"updatedAt": "2022-05-06T12:43:05.845Z",
|
|
9543
9543
|
"devdoc": {
|
|
9544
9544
|
"kind": "dev",
|
|
9545
9545
|
"methods": {},
|