@dolomite-exchange/dolomite-margin 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/contracts/Account.json +11 -11
- package/build/contracts/Actions.json +11 -11
- package/build/contracts/Address.json +1 -1
- package/build/contracts/Admin.json +23 -23
- package/build/contracts/AdminImpl.json +31 -322
- package/build/contracts/AdvancedMath.json +7 -7
- package/build/contracts/AmmRebalancerProxy.json +32 -77
- package/build/contracts/Babylonian.json +1 -1
- package/build/contracts/Bits.json +9 -9
- package/build/contracts/Cache.json +13 -13
- package/build/contracts/ChainlinkPriceOracleV1.json +16 -16
- package/build/contracts/Context.json +1 -1
- package/build/contracts/CustomTestToken.json +9 -9
- package/build/contracts/Decimal.json +9 -9
- package/build/contracts/DelayedMultiSig.json +9 -9
- package/build/contracts/DolomiteAmmERC20.json +11 -11
- package/build/contracts/DolomiteAmmFactory.json +14 -52
- package/build/contracts/DolomiteAmmLibrary.json +24 -24
- package/build/contracts/DolomiteAmmPair.json +27 -27
- package/build/contracts/DolomiteAmmRouterProxy.json +30 -363
- package/build/contracts/DolomiteMargin.json +23 -78
- package/build/contracts/DoubleExponentInterestSetter.json +14 -20
- package/build/contracts/EnumerableSet.json +7 -7
- package/build/contracts/ErroringOmiseToken.json +9 -9
- package/build/contracts/ErroringToken.json +10 -10
- package/build/contracts/Events.json +17 -17
- package/build/contracts/Exchange.json +15 -15
- package/build/contracts/Expiry.json +34 -173
- package/build/contracts/Getters.json +34 -34
- package/build/contracts/IAutoTrader.json +9 -9
- package/build/contracts/ICallee.json +7 -7
- package/build/contracts/IChainlinkAggregator.json +5 -5
- package/build/contracts/IDolomiteAmmERC20.json +5 -5
- package/build/contracts/IDolomiteAmmFactory.json +9 -9
- package/build/contracts/IDolomiteAmmPair.json +9 -9
- package/build/contracts/IDolomiteMargin.json +23 -23
- package/build/contracts/IERC20.json +1 -1
- package/build/contracts/IERC20Detailed.json +5 -5
- package/build/contracts/IExchangeWrapper.json +5 -5
- package/build/contracts/IExpiry.json +9 -9
- package/build/contracts/IInterestSetter.json +7 -7
- package/build/contracts/ILiquidationCallback.json +7 -7
- package/build/contracts/IMakerOracle.json +5 -5
- package/build/contracts/IOasisDex.json +5 -5
- package/build/contracts/IPriceOracle.json +7 -7
- package/build/contracts/IRecyclable.json +9 -9
- package/build/contracts/ITransferProxy.json +5 -5
- package/build/contracts/IUniswapV2Callee.json +5 -5
- package/build/contracts/IUniswapV2Factory.json +5 -5
- package/build/contracts/IUniswapV2Pair.json +5 -5
- package/build/contracts/IUniswapV2Router.json +5 -5
- package/build/contracts/IWETH.json +5 -5
- package/build/contracts/Interest.json +15 -15
- package/build/contracts/LiquidateOrVaporizeImpl.json +31 -82
- package/build/contracts/LiquidatorProxyHelper.json +23 -23
- package/build/contracts/LiquidatorProxyV1.json +31 -37
- package/build/contracts/LiquidatorProxyV1WithAmm.json +32 -149
- package/build/contracts/Math.json +1 -1
- package/build/contracts/Migrations.json +8 -14
- package/build/contracts/Monetary.json +7 -7
- package/build/contracts/MultiCall.json +8 -14
- package/build/contracts/MultiSig.json +7 -7
- package/build/contracts/OmiseToken.json +8 -8
- package/build/contracts/OnlyDolomiteMargin.json +11 -11
- package/build/contracts/Operation.json +15 -15
- package/build/contracts/OperationImpl.json +39 -47
- package/build/contracts/Ownable.json +1 -1
- package/build/contracts/PartiallyDelayedMultiSig.json +9 -9
- package/build/contracts/PayableProxy.json +17 -23
- package/build/contracts/Permission.json +11 -11
- package/build/contracts/PolynomialInterestSetter.json +13 -13
- package/build/contracts/RecyclableTokenProxy.json +25 -25
- package/build/contracts/ReentrancyGuard.json +1 -1
- package/build/contracts/Require.json +7 -7
- package/build/contracts/SafeERC20.json +1 -1
- package/build/contracts/SafeETH.json +7 -7
- package/build/contracts/SafeMath.json +1 -1
- package/build/contracts/SignedOperationProxy.json +21 -104
- package/build/contracts/SimpleFeeOwner.json +18 -63
- package/build/contracts/State.json +9 -9
- package/build/contracts/Storage.json +3222 -3222
- package/build/contracts/TestAmmRebalancerProxy.json +32 -58
- package/build/contracts/TestAutoTrader.json +22 -22
- package/build/contracts/TestBtcUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestCallee.json +19 -19
- package/build/contracts/TestChainlinkPriceOracleV1.json +10 -94
- package/build/contracts/TestCounter.json +7 -7
- package/build/contracts/TestDaiUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestDolomiteMargin.json +21 -21
- package/build/contracts/TestDoubleExponentInterestSetter.json +10 -10
- package/build/contracts/TestEthUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestExchangeWrapper.json +10 -10
- package/build/contracts/TestInterestSetter.json +12 -12
- package/build/contracts/TestLib.json +22 -22
- package/build/contracts/TestLinkUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestLiquidateCallback.json +15 -15
- package/build/contracts/TestLrcEthChainlinkAggregator.json +11 -11
- package/build/contracts/TestMakerOracle.json +10 -10
- package/build/contracts/TestMaticUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestOasisDex.json +12 -12
- package/build/contracts/TestOperationImpl.json +15 -15
- package/build/contracts/TestPolynomialInterestSetter.json +10 -10
- package/build/contracts/TestPriceAggregator.json +9 -9
- package/build/contracts/TestPriceOracle.json +12 -12
- package/build/contracts/TestRecyclableToken.json +9 -9
- package/build/contracts/TestSimpleCallee.json +15 -15
- package/build/contracts/TestToken.json +9 -9
- package/build/contracts/TestTrader.json +17 -17
- package/build/contracts/TestUniswapAmmRebalancerProxy.json +16 -16
- package/build/contracts/TestUsdcUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestWETH.json +9 -9
- package/build/contracts/Time.json +9 -9
- package/build/contracts/Token.json +9 -9
- package/build/contracts/TokenA.json +10 -10
- package/build/contracts/TokenB.json +10 -10
- package/build/contracts/TokenC.json +10 -10
- package/build/contracts/TokenD.json +10 -10
- package/build/contracts/TokenE.json +10 -10
- package/build/contracts/TokenF.json +10 -10
- package/build/contracts/TransferProxy.json +22 -28
- package/build/contracts/TypedSignature.json +9 -9
- package/build/contracts/Types.json +9 -9
- package/build/contracts/UQ112x112.json +7 -7
- package/build/contracts/UniswapV2ERC20.json +7 -7
- package/build/contracts/UniswapV2Factory.json +12 -12
- package/build/contracts/UniswapV2Library.json +20 -20
- package/build/contracts/UniswapV2Pair.json +17 -17
- package/build/contracts/UniswapV2Router02.json +16 -16
- package/build/contracts/WETH9.json +1 -1
- package/contracts/protocol/impl/artifacts/OperationImpl.json +80 -0
- package/contracts/protocol/impl/artifacts/OperationImpl_metadata.json +193 -0
- package/contracts/protocol/lib/Storage.sol +7 -0
- package/dist/build/published_contracts/AdminImpl.json +1 -1
- package/dist/build/published_contracts/AmmRebalancerProxy.json +1 -1
- package/dist/build/published_contracts/ChainlinkPriceOracleV1.json +1 -1
- package/dist/build/published_contracts/DolomiteAmmFactory.json +1 -1
- package/dist/build/published_contracts/DolomiteAmmRouterProxy.json +1 -1
- package/dist/build/published_contracts/DoubleExponentInterestSetter.json +1 -1
- package/dist/build/published_contracts/Expiry.json +1 -1
- package/dist/build/published_contracts/LiquidatorProxyV1.json +2 -2
- package/dist/build/published_contracts/LiquidatorProxyV1WithAmm.json +1 -1
- package/dist/build/published_contracts/MultiCall.json +1 -1
- package/dist/build/published_contracts/PayableProxy.json +2 -2
- package/dist/build/published_contracts/SignedOperationProxy.json +2 -2
- package/dist/build/published_contracts/SimpleFeeOwner.json +1 -1
- package/dist/build/published_contracts/TransferProxy.json +1 -1
- package/dist/src/modules/operate/AccountOperation.d.ts +8 -2
- package/dist/src/modules/operate/AccountOperation.js +7 -7
- package/dist/src/modules/operate/AccountOperation.js.map +1 -1
- package/package.json +2 -2
|
@@ -331,15 +331,15 @@
|
|
|
331
331
|
"type": "function"
|
|
332
332
|
}
|
|
333
333
|
],
|
|
334
|
-
"metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dolomiteMargin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dolomiteAmmFactory\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"routers\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"initCodeHashes\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"RouterInitCodeHashSet\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_AMM_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_MARGIN\",\"outputs\":[{\"internalType\":\"contract IDolomiteMargin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"FILE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ROUTER_TO_INIT_CODE_HASH_MAP\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"routers\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"initCodeHashes\",\"type\":\"bytes32[]\"}],\"name\":\"adminSetRouterInitCodeHashes\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"makerToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"takerToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"orderData\",\"type\":\"bytes\"}],\"name\":\"exchange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"makerToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"takerToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"desiredMakerToken\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"orderData\",\"type\":\"bytes\"}],\"name\":\"getExchangeCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"dolomitePath\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenB\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"otherRouter\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"otherPath\",\"type\":\"bytes\"}],\"internalType\":\"struct AmmRebalancerProxy.RebalanceParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"performRebalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/AmmRebalancerProxy.sol\":\"AmmRebalancerProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/helpers/OnlyDolomiteMargin.sol\":{\"keccak256\":\"0xfc9ce2f5a274ec66668c133f09fe213bc1a6a739f9147f4357a3493094de8deb\",\"urls\":[\"bzz-raw://e45442587f111fa0d85dd85a4e07993f5fecd1afce4f457ed21441f8b0abb937\",\"dweb:/ipfs/QmaNq3j3PUwb8Wrx2gEmFFsVa2GByDEkDCPGdwo2qvMeKh\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IDolomiteAmmFactory.sol\":{\"keccak256\":\"0xf5fd97ee3591ff30a3576d6d58847b5f6e156639578bed3827313a2c70823b78\",\"urls\":[\"bzz-raw://f9da41065f9b3b559bfc588cea01480f1c64ee7b1f1a86e54868f464fdfe2160\",\"dweb:/ipfs/QmWeBi2zSdPCENVV4fvCQ49HgnwLGxd3WS9sGMC4vR5NrB\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IDolomiteAmmPair.sol\":{\"keccak256\":\"0xe2272c233467a78460e681419f0acdc765de0ad5357d3b768665f289941ccd47\",\"urls\":[\"bzz-raw://114f1c797f4e7e803b0764ae7107a2279c3da806450287c9e5600211faeeab57\",\"dweb:/ipfs/QmUoLx1rGgCdX5ScsUkp4NsSZLyVWdKsVKeXuPCtcrAvLn\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IUniswapV2Router.sol\":{\"keccak256\":\"0xbb1dded2be890864da47836668261c2c655ec63a5fe6ccaa5da61a6376ebb03c\",\"urls\":[\"bzz-raw://8243cb7e11c97c7d95ad096d962f2be45bc1caccf6fc88a6ac0b3287031b8d1d\",\"dweb:/ipfs/QmbZuXgtDspV7P4qooQygPcoBxvoLS7A5xgJpXAsfsXrzS\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/DolomiteAmmLibrary.sol\":{\"keccak256\":\"0xcbda45657476fb516cba12698bac7d09ec4eaca999d6dc9480f13a5ae1bd0e29\",\"urls\":[\"bzz-raw://7e154ac11a849cadc74fb71d074c74d42420bd5279f36f6b948311d7a8e9be34\",\"dweb:/ipfs/QmRBRHQYXSpGHpS39cffRccYsn5gBBCd5S6yNrrYFnHHfc\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/TypedSignature.sol\":{\"keccak256\":\"0x4b4eb5fd2869d6c410948f78163773442c11bc82e393307e41359bbdb21577bf\",\"urls\":[\"bzz-raw://9c9c3abae44173086bc08f5479fbc67151d5905f60e1032ec6f9e40f841f3365\",\"dweb:/ipfs/QmbsQRX3gmcpimjFEW5ULJVavHQtViyg7NSQ2Q8Qcu6F6V\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/AmmRebalancerProxy.sol\":{\"keccak256\":\"0xf6abdb8e82e98ef3aa80971575979c309c5173ad2f1df5475a073ca473ef4f1e\",\"urls\":[\"bzz-raw://6c096544073d9946bd817c029262817d26425b2b92aa287188c403e885d53bf6\",\"dweb:/ipfs/QmXJ8FwxA2B8n8v7fTYpb9qAhc7GFbRjT2KYoNFGf4MsCn\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/uniswap-v2/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x022ea15b611c155e236053a484d21223ae6f74da3828379cd8a34a16649b5945\",\"urls\":[\"bzz-raw://41979b601b10b34937f2f5939ab5c5240759c3434e405bf84a69ef94a1612454\",\"dweb:/ipfs/QmbK4y63kjtpbxFgResFo9K2bEhNxcxoTqddpJXeHxwqcT\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x3e95a2b461f3f0cc4000d71d5c7bb6b1222788cfac1c66faad029ccaa1859d1e\",\"urls\":[\"bzz-raw://cad9773b4a1b196ea3d71129b5bd5679df7db601555a6b29ac111d38c36b00f0\",\"dweb:/ipfs/QmThFva71eLSVmBHHxn34zP7BUCJZDD6wMJHxEkKNWkkvv\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IExchangeWrapper.sol\":{\"keccak256\":\"0xfca7f5635821bbc8ff21db6982471a5f20071365496b74a8202e59494d0f327f\",\"urls\":[\"bzz-raw://eb289cb96c83a3ff7fd72d9a646694d324ee955874ef61e986850459b5841d16\",\"dweb:/ipfs/QmeeiaqShMqWpttPJ3GuDwxFzmq235HMVG7vDnLWnCupaZ\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x44ec62b766a88a2f65267991e76cab88711e733b826dc9e578cb6ad6b38b2445\",\"urls\":[\"bzz-raw://731a8d44e57c9dcd7fbdefc37a6b5889c0d06defb3bd66b921b2a7db0edf0103\",\"dweb:/ipfs/QmcVbXc9oi5DMxjPtsBF76oJzD6zVjm7RuXgJfP3Goqrrb\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0xbb17eb41ff805df51e8d637ef2a368782fdc5f085889c2d847713484f8f1967b\",\"urls\":[\"bzz-raw://538001d60d625695754159a8f716877f72217899fdab296d4725dc44bdbe1895\",\"dweb:/ipfs/QmbRm1WpPpaynnwTdmwB5M7H1cZQEtRAuExqtJ3g9SUiVp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0xca1826cf783a2d48a5a45309ca92cbaee46d2caec7b5a7c154b2dfda06af8975\",\"urls\":[\"bzz-raw://e13679dfa92725d990e3b0656f4eca4b0d09616e5c2729a3bc0276923d6887e1\",\"dweb:/ipfs/QmVc8teCJ6rKutZLyvk568hCw1vYj2nC6DwyxRgswHu71k\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x6fb9d7889769d7cc161225f9ef7a90e468ba9788b253816f8d8b6894d3472c24\",\"urls\":[\"bzz-raw://cf4c00fc3c37cc5acf0c82ec6fd97bab67d72c2567fdc0ebf023d9c09b30a08e\",\"dweb:/ipfs/Qmb7TChG6DsEDX7LooJ4vmxot19f7VXX8S1zUGPeJTWbwZ\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x6f2c9955d65c522b80f4b8792f076512d2df947d2112cbc4d98a4781ed42ede2\",\"urls\":[\"bzz-raw://7d8ec81683520c06baeef3f7e06cd82bd6fd5fa611f26857f475f6c829540aff\",\"dweb:/ipfs/QmTDkFzKnrpiV1UKnSoiZAHPuguWzokrr4pFbSPvyaSo56\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11\",\"urls\":[\"bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b\",\"dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]},\"@uniswap/lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]}},\"version\":1}",
|
|
335
|
-
"bytecode": "0x60806040523480156200001157600080fd5b5060405162003dc838038062003dc8833981016040819052620000349162000438565b600080546001600160a01b0319166001600160a01b03861617815562000059620001f3565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b0319166001600160a01b0385161790558051825162000115911471416d6d526562616c616e63657250726f787960701b7f726f75746572732f696e6974436f64657320696e76616c6964206c656e677468620001f7602090811b62000f7f17901c565b60005b8251811015620001e8578181815181106200012f57fe5b6020026020010151600360008584815181106200014857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508281815181106200018157fe5b60200260200101516001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a838381518110620001c057fe5b6020026020010151604051620001d79190620005ca565b60405180910390a260010162000118565b5050505050620006d4565b3390565b82620002705762000211826001600160e01b036200027516565b6101d160f51b6200022b836001600160e01b036200027516565b6040516020016200023f9392919062000593565b60408051601f198184030181529082905262461bcd60e51b82526200026791600401620005da565b60405180910390fd5b505050565b606080826040516020016200028b91906200057c565b60408051601f19818403018152919052905060205b8015620002fd57815160001990910190829082908110620002bd57fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615620002f7576001018152905062000311565b620002a0565b505060408051600081526020810190915290505b919050565b80516200032381620006af565b92915050565b600082601f8301126200033b57600080fd5b8151620003526200034c826200061b565b620005f4565b915081818352602084019350602081019050838560208402820111156200037857600080fd5b60005b83811015620003a8578162000391888262000316565b84525060209283019291909101906001016200037b565b5050505092915050565b600082601f830112620003c457600080fd5b8151620003d56200034c826200061b565b91508181835260208401935060208101905083856020840282011115620003fb57600080fd5b60005b83811015620003a857816200041488826200042b565b8452506020928301929190910190600101620003fe565b80516200032381620006c9565b600080600080608085870312156200044f57600080fd5b60006200045d878762000316565b9450506020620004708782880162000316565b93505060408501516001600160401b038111156200048d57600080fd5b6200049b8782880162000329565b92505060608501516001600160401b03811115620004b857600080fd5b620004c687828801620003b2565b91505092959194509250565b620004e7620004e18262000656565b62000663565b82525050565b620004e78162000663565b620004e7620004e18262000663565b600062000514826200063c565b62000520818562000311565b93506200053281856020860162000672565b9290920192915050565b600062000549826200063c565b62000555818562000640565b93506200056781856020860162000672565b6200057281620006a5565b9093019392505050565b60006200058a8284620004f8565b50602001919050565b6000620005a1828662000507565b9150620005af8285620004d2565b600282019150620005c1828462000507565b95945050505050565b60208101620003238284620004ed565b60208082528101620005ed81846200053c565b9392505050565b6040518181016001600160401b03811182821017156200061357600080fd5b604052919050565b60006001600160401b038211156200063257600080fd5b5060209081020190565b5190565b90815260200190565b6000620003238262000666565b6001600160f01b03191690565b90565b6001600160a01b031690565b60005b838110156200068f57818101518382015260200162000675565b838111156200069f576000848401525b50505050565b601f01601f191690565b620006ba8162000649565b8114620006c657600080fd5b50565b620006ba8162000663565b6136e480620006e46000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638d5c659e11610081578063c275f5dd1161005b578063c275f5dd1461018c578063d5dbd5151461019f578063f2fde38b146101a7576100d4565b80638d5c659e1461015c5780638da5cb5b1461016f5780638f32d59b14610177576100d4565b806366d555a9116100b257806366d555a91461012c578063715018a6146101415780637d98ebac14610149576100d4565b806315c14a4a146100d957806317859b4c146100f75780633a8fdd7d1461010c575b600080fd5b6100e16101ba565b6040516100ee91906133b7565b60405180910390f35b61010a610105366004612b91565b6101c9565b005b61011f61011a366004612a50565b610972565b6040516100ee91906133a9565b610134610b3b565b6040516100ee9190613305565b61010a610b4a565b61011f6101573660046129ab565b610bd9565b61011f61016a36600461290a565b610d94565b610134610da6565b61017f610db5565b6040516100ee919061339b565b61010a61019a366004612ace565b610ddb565b61011f610f2b565b61010a6101b536600461290a565b610f4f565b6000546001600160a01b031681565b8051516102459060281480156101e55750602882608001515110155b80156101fe57506014826080015151816101fb57fe5b06155b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642070617468206c656e67746873000000000000000000000000610f7f565b60606102548260000151610ff4565b905060606102658360800151610ff4565b90506103398160018351038151811061027a57fe5b60200260200101516001600160a01b03168360008151811061029857fe5b60200260200101516001600160a01b03161480156102f25750816000815181106102be57fe5b60200260200101516001600160a01b0316836001855103815181106102df57fe5b60200260200101516001600160a01b0316145b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c6964207061746820616c69676e6d656e7400000000000000000000610f7f565b61034161260f565b600254604080518082019091526001600160a01b03909116808252906020810161036b83876110eb565b81525091505060008060006103ad84600001518760008151811061038b57fe5b6020026020010151886001815181106103a057fe5b6020026020010151611121565b915091506000806103c889602001518a60400151868661115c565b91509150610417827f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642061546f420000000000000000000000000000000000000000610f7f565b80945050505050606082602001515160020160405190808252806020026020018201604052801561046257816020015b61044f612627565b8152602001906001900390816104475790505b5090506040518060400160405280336001600160a01b0316815260200160008152508160008151811061049157fe5b60200260200101819052506040518060400160405280336001600160a01b031681526020016001815250816001815181106104c857fe5b602090810291909101015260005b83602001515181101561053b576040518060400160405280856020015183815181106104fe57fe5b60200260200101516001600160a01b03168152602001600081525082826002018151811061052857fe5b60209081029190910101526001016104d6565b50606061054786611248565b60608801516001600160a01b0316600090815260036020526040812054919250906105b58115157f416d6d526562616c616e63657250726f787900000000000000000000000000007f726f75746572206e6f74207265636f676e697a65640000000000000000000000610f7f565b61063589606001516001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156105f557600080fd5b505afa158015610609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061062d9190810190612928565b82878a61134a565b60008151811061064157fe5b60200260200101519150506060600188516002010360405190808252806020026020018201604052801561068f57816020015b61067c61263e565b8152602001906001900390816106745790505b50905060008590506106da6001856001875103815181106106ac57fe5b6020026020010151866000815181106106c157fe5b6020026020010151868e606001518f608001518761147b565b826000815181106106e757fe5b60200260200101819052505060606107048760000151878b61151c565b905061076b8160018351038151811061071957fe5b60200260200101518411157f416d6d526562616c616e63657250726f787900000000000000000000000000007f61726220636c6f73656400000000000000000000000000000000000000000000610f7f565b60005b8760200151518110156108a95761080b8860200151828151811061078e57fe5b60200260200101516001600160a01b03168783600201815181106107ae57fe5b6020026020010151600001516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c696420706f6f6c206f776e65722061646472657373000000000000610f7f565b61088760018260020187848151811061082057fe5b602002602001015188856001018151811061083757fe5b60200260200101518c60200151868151811061084f57fe5b602002602001015187878151811061086357fe5b602002602001015188886001018151811061087a57fe5b6020026020010151611635565b83826001018151811061089657fe5b602090810291909101015260010161076e565b506108ce60016000866001885103815181106108c157fe5b60200260200101516116b3565b826001845103815181106108de57fe5b60209081029190910101526000546040517fa67a6a450000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a67a6a45906109349088908690600401613376565b600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b5050505050505050505050505050565b600080606061098384860186612946565b9250509150606061099382610ff4565b9050610a08886001600160a01b0316826000815181106109af57fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f706174685b305d206e6f742074616b6572546f6b656e00000000000000000000610f7f565b610a7e896001600160a01b031682600184510381518110610a2557fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f706174685b6c6173745d206e6f74206d616b6572546f6b656e00000000000000610f7f565b6040517f1f00ca740000000000000000000000000000000000000000000000000000000081526001600160a01b03841690631f00ca7490610ac5908a908590600401613456565b60006040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b199190810190612b3e565b600081518110610b2557fe5b6020026020010151935050505095945050505050565b6002546001600160a01b031681565b610b52610db5565b610b775760405162461bcd60e51b8152600401610b6e90613416565b60405180910390fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600080543390610c36906001600160a01b031682147f4f6e6c79446f6c6f6d6974654d617267696e00000000000000000000000000007f4f6e6c7920446f6c6f6d6974652063616e2063616c6c2066756e6374696f6e0084611741565b6000806060610c4786880188612946565b9250925092506060610c5882610ff4565b9050610c748a6001600160a01b0316826000815181106109af57fe5b610c918b6001600160a01b031682600184510381518110610a2557fe5b610c9c8a858b6117df565b6040517f38ed17390000000000000000000000000000000000000000000000000000000081526060906001600160a01b038616906338ed173990610cef908d908890879030906001420190600401613476565b600060405180830381600087803b158015610d0957600080fd5b505af1158015610d1d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d459190810190612b3e565b9050610d698c8e83600185510381518110610d5c57fe5b60200260200101516117df565b80600182510381518110610d7957fe5b60200260200101519650505050505050979650505050505050565b60036020526000908152604090205481565b6001546001600160a01b031690565b6001546000906001600160a01b0316610dcc61189a565b6001600160a01b031614905090565b610de3610db5565b610dff5760405162461bcd60e51b8152600401610b6e90613416565b610e4c8382147f416d6d526562616c616e63657250726f787900000000000000000000000000007f726f75746572732f696e6974436f64657320696e76616c6964206c656e677468610f7f565b60005b83811015610f2457828282818110610e6357fe5b9050602002013560036000878785818110610e7a57fe5b9050602002016020610e8f919081019061290a565b6001600160a01b03168152602081019190915260400160002055848482818110610eb557fe5b9050602002016020610eca919081019061290a565b6001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a848484818110610f0057fe5b90506020020135604051610f1491906133a9565b60405180910390a2600101610e4f565b5050505050565b7f416d6d526562616c616e63657250726f7879000000000000000000000000000081565b610f57610db5565b610f735760405162461bcd60e51b8152600401610b6e90613416565b610f7c8161189e565b50565b82610fef57610f8d82611938565b7f3a20000000000000000000000000000000000000000000000000000000000000610fb783611938565b604051602001610fc99392919061323d565b60408051601f198184030181529082905262461bcd60e51b8252610b6e916004016133c5565b505050565b606061105b601483518161100457fe5b0615801561101457506028835110155b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7f565b6060601483518161106857fe5b04604051908082528060200260200182016040528015611092578160200160208202803883390190505b50905060005b81518110156110e25760148102848101602001518351606082901c908590859081106110c057fe5b6001600160a01b03909216602092830291909101909101525050600101611098565b5090505b919050565b6060611118837fe6a28b91a2f6ed25ca52fc081821cf7e099221d7cad41fa6c6239bad4ce3803f846119d0565b90505b92915050565b600080611150857fe6a28b91a2f6ed25ca52fc081821cf7e099221d7cad41fa6c6239bad4ce3803f8686611ac5565b91509150935093915050565b6000808561118084611174878963ffffffff611bae16565b9063ffffffff611be816565b1091506000611195858563ffffffff611bae16565b905060006111eb6111bb6103e5866111ad578a6111af565b895b9063ffffffff611bae16565b6111de6103e86111af886111cf578b6111d1565b8c5b879063ffffffff611bae16565b816111e557fe5b04611c2a565b905060006103e58561120e57611209876103e863ffffffff611bae16565b611220565b611220886103e863ffffffff611bae16565b8161122757fe5b04905061123a828263ffffffff611d7d16565b935050505094509492505050565b60005481516040805182815260208084028201019091526060926001600160a01b0316918391908015611285578160200160208202803883390190505b50905060005b845181101561134257826001600160a01b0316638fae3be18683815181106112af57fe5b60200260200101516040518263ffffffff1660e01b81526004016112d39190613305565b60206040518083038186803b1580156112eb57600080fd5b505afa1580156112ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113239190810190612c09565b82828151811061132f57fe5b602090810291909101015260010161128b565b509392505050565b606061139c6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7f565b81516040519080825280602002602001820160405280156113c7578160200160208202803883390190505b50905082816001835103815181106113db57fe5b60209081029190910101528151600019015b80156114725760008061142b888887600187038151811061140a57fe5b602002602001015188878151811061141e57fe5b6020026020010151611dbf565b9150915061144d84848151811061143e57fe5b60200260200101518383611e18565b84600185038151811061145c57fe5b60209081029190910101525050600019016113ed565b50949350505050565b61148361263e565b60408051610100810182526004815260208082018b90528251608081018452600080825292938401929091820190815260200160008152602001888152508152602001888152602001878152602001306001600160a01b0316815260200160001981526020018584866040516020016114fe93929190613349565b60408051601f19818403018152919052905298975050505050505050565b606061156e6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7f565b8151604051908082528060200260200182016040528015611599578160200160208202803883390190505b50905082816000815181106115aa57fe5b60200260200101818152505060005b6001835103811015611342576000806115ef878685815181106115d857fe5b60200260200101518786600101815181106103a057fe5b9150915061161184848151811061160257fe5b60200260200101518383611f21565b84846001018151811061162057fe5b602090810291909101015250506001016115b9565b61163d61263e565b604080516101008101909152806005815260208082018b905260408051608081018252600181529201919081016000815260200160008152602001868152508152602001878152602001868152602001856001600160a01b03168152602001888152602001836040516020016114fe91906133a9565b6116bb61263e565b604080516101008101909152806002815260208082018790526040805160808101825260018152920191908101600081526020016001815260200160008152508152602001838152602001600019815260200160006001600160a01b031681526020018481526020016040518060200160405280600081525081525090505b9392505050565b836117d95761174f83611938565b7f3a2000000000000000000000000000000000000000000000000000000000000061177984611938565b7f203c0000000000000000000000000000000000000000000000000000000000006117a385612023565b604051610fc99594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613265565b50505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815281906001600160a01b0385169063dd62ed3e906118289030908790600401613313565b60206040518083038186803b15801561184057600080fd5b505afa158015611854573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118789190810190612c09565b1015610fef57610fef6001600160a01b0384168360001963ffffffff61218d16565b3390565b6001600160a01b0381166118c45760405162461bcd60e51b8152600401610b6e906133d6565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060808260405160200161194c919061321c565b60408051601f19818403018152919052905060205b80156119b95781516000199091019082908290811061197c57fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156119b457600101815290506110e6565b611961565b505060408051600081526020810190915292915050565b6060611a226002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7f565b60606001835103604051908082528060200260200182016040528015611a52578160200160208202803883390190505b50905060005b600184510381101561147257611a9986858381518110611a7457fe5b6020026020010151868460010181518110611a8b57fe5b6020026020010151886122e9565b828281518110611aa557fe5b6001600160a01b0390921660209283029190910190910152600101611a58565b6000806000611ad4858561235c565b509050600080611ae68988888b6122e9565b6001600160a01b031663b432a82c6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1e57600080fd5b505afa158015611b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b569190810190612bc6565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614611b9b578082611b9e565b81815b909a909950975050505050505050565b600082611bbd5750600061111b565b82820282848281611bca57fe5b04146111185760405162461bcd60e51b8152600401610b6e90613406565b600061111883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612444565b600081611c39575060006110e6565b8160017001000000000000000000000000000000008210611c5f5760809190911c9060401b5b680100000000000000008210611c7a5760409190911c9060201b5b6401000000008210611c915760209190911c9060101b5b620100008210611ca65760109190911c9060081b5b6101008210611cba5760089190911c9060041b5b60108210611ccd5760049190911c9060021b5b60088210611cd95760011b5b6001818581611ce457fe5b048201901c90506001818581611cf657fe5b048201901c90506001818581611d0857fe5b048201901c90506001818581611d1a57fe5b048201901c90506001818581611d2c57fe5b048201901c90506001818581611d3e57fe5b048201901c90506001818581611d5057fe5b048201901c90506000818581611d6257fe5b049050808210611d725780611d74565b815b95945050505050565b600061111883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061247b565b6000806000611dce858561235c565b509050600080611de08988888b6122e9565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1e57600080fd5b6000611e68600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206f757470757420616d6f756e74000000000000610f7f565b611ec2600084118015611e7b5750600083115b7f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7f565b6000611eda6103e86111af868863ffffffff611bae16565b90506000611ef46103e56111af868963ffffffff611d7d16565b9050611f176001611f0b848463ffffffff611be816565b9063ffffffff6124a716565b9695505050505050565b6000611f71600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e7420696e70757420616d6f756e7400000000000000610f7f565b611fca600084118015611e7b5750600083117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7f565b6000611fde856103e563ffffffff611bae16565b90506000611ff2828563ffffffff611bae16565b9050600061200c83611f0b886103e863ffffffff611bae16565b905080828161201757fe5b04979650505050505050565b60408051602a80825260608281019093526001600160a01b038416918391602082018180388339019050509050603060f81b8160008151811061206257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106120a357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b601481101561134257600281026120ee600f85166124cc565b8382602903815181106120fd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061213f600f85166124cc565b83826028038151811061214e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016120d5565b80158061222e57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063dd62ed3e906121dc9030908690600401613313565b60206040518083038186803b1580156121f457600080fd5b505afa158015612208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061222c9190810190612c09565b155b61224a5760405162461bcd60e51b8152600401610b6e90613436565b604051610fef9084907f095ea7b30000000000000000000000000000000000000000000000000000000090612285908690869060240161332e565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526124ee565b60008060006122f8868661235c565b915091508682826040516020016123109291906131f6565b6040516020818303038152906040528051906020012085604051602001612339939291906132c3565b60408051601f198184030181529190528051602090910120979650505050505050565b6000806123bf836001600160a01b0316856001600160a01b031614157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f6964656e746963616c2061646472657373657300000000000000000000000000610f7f565b826001600160a01b0316846001600160a01b0316106123df5782846123e2565b83835b909250905061243d6001600160a01b03831615157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f7a65726f20616464726573730000000000000000000000000000000000000000610f7f565b9250929050565b600081836124655760405162461bcd60e51b8152600401610b6e91906133c5565b50600083858161247157fe5b0495945050505050565b6000818484111561249f5760405162461bcd60e51b8152600401610b6e91906133c5565b505050900390565b6000828201838110156111185760405162461bcd60e51b8152600401610b6e906133e6565b6000600a8210156124e457506030810160f81b6110e6565b5060570160f81b90565b612500826001600160a01b03166125d3565b61251c5760405162461bcd60e51b8152600401610b6e90613446565b60006060836001600160a01b0316836040516125389190613231565b6000604051808303816000865af19150503d8060008114612575576040519150601f19603f3d011682016040523d82523d6000602084013e61257a565b606091505b50915091508161259c5760405162461bcd60e51b8152600401610b6e906133f6565b8051156117d957808060200190516125b79190810190612b73565b6117d95760405162461bcd60e51b8152600401610b6e90613426565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061260757508115155b949350505050565b60408051808201909152600081526060602082015290565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161265e612690565b8152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561111b81613669565b805161111b81613669565b60008083601f8401126126e157600080fd5b50813567ffffffffffffffff8111156126f957600080fd5b60208301915083602082028301111561243d57600080fd5b600082601f83011261272257600080fd5b8151612735612730826134e6565b6134bf565b9150818183526020840193506020810190508385602084028201111561275a57600080fd5b60005b83811015612786578161277088826128f4565b845250602092830192919091019060010161275d565b5050505092915050565b805161111b8161367d565b60008083601f8401126127ad57600080fd5b50813567ffffffffffffffff8111156127c557600080fd5b60208301915083600182028301111561243d57600080fd5b600082601f8301126127ee57600080fd5b81356127fc61273082613507565b9150808252602083016020830185838301111561281857600080fd5b6128238382846135fc565b50505092915050565b600060a0828403121561283e57600080fd5b61284860a06134bf565b9050813567ffffffffffffffff81111561286157600080fd5b61286d848285016127dd565b825250602061287e848483016128e9565b6020830152506040612892848285016128e9565b60408301525060606128a6848285016126b9565b606083015250608082013567ffffffffffffffff8111156128c657600080fd5b6128d2848285016127dd565b60808301525092915050565b805161111b81613686565b803561111b8161368f565b805161111b8161368f565b805161111b81613698565b60006020828403121561291c57600080fd5b600061260784846126b9565b60006020828403121561293a57600080fd5b600061260784846126c4565b60008060006060848603121561295b57600080fd5b600061296786866126b9565b9350506020612978868287016128e9565b925050604084013567ffffffffffffffff81111561299557600080fd5b6129a1868287016127dd565b9150509250925092565b600080600080600080600060c0888a0312156129c657600080fd5b60006129d28a8a6126b9565b97505060206129e38a828b016126b9565b96505060406129f48a828b016126b9565b9550506060612a058a828b016126b9565b9450506080612a168a828b016128e9565b93505060a088013567ffffffffffffffff811115612a3357600080fd5b612a3f8a828b0161279b565b925092505092959891949750929550565b600080600080600060808688031215612a6857600080fd5b6000612a7488886126b9565b9550506020612a85888289016126b9565b9450506040612a96888289016128e9565b935050606086013567ffffffffffffffff811115612ab357600080fd5b612abf8882890161279b565b92509250509295509295909350565b60008060008060408587031215612ae457600080fd5b843567ffffffffffffffff811115612afb57600080fd5b612b07878288016126cf565b9450945050602085013567ffffffffffffffff811115612b2657600080fd5b612b32878288016126cf565b95989497509550505050565b600060208284031215612b5057600080fd5b815167ffffffffffffffff811115612b6757600080fd5b61260784828501612711565b600060208284031215612b8557600080fd5b60006126078484612790565b600060208284031215612ba357600080fd5b813567ffffffffffffffff811115612bba57600080fd5b6126078482850161282c565b600080600060608486031215612bdb57600080fd5b6000612be786866128de565b9350506020612bf8868287016128de565b92505060406129a1868287016128ff565b600060208284031215612c1b57600080fd5b600061260784846128f4565b6000612c338383612c5b565b505060200190565b600061111883836130e6565b6000612c5383836131d2565b505060400190565b612c6481613542565b82525050565b612c64612c7682613542565b613634565b6000612c8682613535565b612c908185613539565b9350612c9b8361352f565b8060005b83811015612cc9578151612cb38882612c27565b9750612cbe8361352f565b925050600101612c9f565b509495945050505050565b6000612cdf82613535565b612ce98185613539565b935083602082028501612cfb8561352f565b8060005b85811015612d355784840389528151612d188582612c3b565b9450612d238361352f565b60209a909a0199925050600101612cff565b5091979650505050505050565b6000612d4d82613535565b612d578185613539565b9350612d628361352f565b8060005b83811015612cc9578151612d7a8882612c47565b9750612d858361352f565b925050600101612d66565b612c648161354d565b612c64612da582613552565b61359c565b612c64612da582613577565b612c648161359c565b612c64612da58261359c565b6000612dd682613535565b612de08185613539565b9350612df0818560208601613608565b612df981613645565b9093019392505050565b6000612e0e82613535565b612e1881856110e6565b9350612e28818560208601613608565b9290920192915050565b612c64816135db565b612c64816135e6565b612c64816135f1565b6000612e5a602683613539565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612eb9601b83613539565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612ef2602083613539565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000612f2b6001836110e6565b7fff00000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000612f64602183613539565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612fc3602083613539565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000612ffc602a83613539565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b600061305b603683613539565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f81527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015260400192915050565b60006130ba601f83613539565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906130fb8582612e3b565b50602083015161310e6020860182612db6565b5060408301516131216040860182613188565b50606083015161313460c0860182612db6565b50608083015161314760e0860182612db6565b5060a083015161315b610100860182612c5b565b5060c083015161316f610120860182612db6565b5060e0830151848203610140860152611d748282612dcb565b805160808301906131998482612d90565b5060208201516131ac6020850182612e44565b5060408201516131bf6040850182612e44565b5060608201516117d96060850182612db6565b805160408301906131e38482612c5b565b5060208201516117d96020850182612db6565b60006132028285612c6a565b6014820191506132128284612c6a565b5060140192915050565b60006132288284612dbf565b50602001919050565b600061173a8284612e03565b60006132498286612e03565b91506132558285612daa565b600282019150611d748284612e03565b60006132718289612e03565b915061327d8288612daa565b60028201915061328d8287612e03565b91506132998286612daa565b6002820191506132a98285612e03565b91506132b58284612d99565b506001019695505050505050565b60006132ce82612f1e565b91506132da8286612c6a565b6014820191506132ea8285612dbf565b6020820191506132fa8284612dbf565b506020019392505050565b6020810161111b8284612c5b565b604081016133218285612c5b565b61173a6020830184612c5b565b6040810161333c8285612c5b565b61173a6020830184612db6565b606081016133578286612c5b565b6133646020830185612db6565b8181036040830152611d748184612dcb565b604080825281016133878185612d42565b905081810360208301526126078184612cd4565b6020810161111b8284612d90565b6020810161111b8284612db6565b6020810161111b8284612e32565b602080825281016111188184612dcb565b6020808252810161111b81612e4d565b6020808252810161111b81612eac565b6020808252810161111b81612ee5565b6020808252810161111b81612f57565b6020808252810161111b81612fb6565b6020808252810161111b81612fef565b6020808252810161111b8161304e565b6020808252810161111b816130ad565b604081016134648285612db6565b81810360208301526126078184612c7b565b60a081016134848288612db6565b6134916020830187612db6565b81810360408301526134a38186612c7b565b90506134b26060830185612c5b565b611f176080830184612db6565b60405181810167ffffffffffffffff811182821017156134de57600080fd5b604052919050565b600067ffffffffffffffff8211156134fd57600080fd5b5060209081020190565b600067ffffffffffffffff82111561351e57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b600061111b826135c6565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b806110e681613655565b806110e68161365f565b6dffffffffffffffffffffffffffff1690565b6001600160a01b031690565b63ffffffff1690565b600061111b82613542565b600061111b8261359f565b600061111b826135a9565b82818337506000910152565b60005b8381101561362357818101518382015260200161360b565b838111156117d95750506000910152565b600061111b82600061111b8261364f565b601f01601f191690565b60601b90565b60098110610f7c57fe5b60028110610f7c57fe5b61367281613542565b8114610f7c57600080fd5b6136728161354d565b613672816135b3565b6136728161359c565b613672816135d256fea365627a7a7231582014994a316491810ff3417b1ff436b7f94c4187080d63d17ee40c76e74393a25d6c6578706572696d656e74616cf564736f6c63430005100040",
|
|
336
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80638d5c659e11610081578063c275f5dd1161005b578063c275f5dd1461018c578063d5dbd5151461019f578063f2fde38b146101a7576100d4565b80638d5c659e1461015c5780638da5cb5b1461016f5780638f32d59b14610177576100d4565b806366d555a9116100b257806366d555a91461012c578063715018a6146101415780637d98ebac14610149576100d4565b806315c14a4a146100d957806317859b4c146100f75780633a8fdd7d1461010c575b600080fd5b6100e16101ba565b6040516100ee91906133b7565b60405180910390f35b61010a610105366004612b91565b6101c9565b005b61011f61011a366004612a50565b610972565b6040516100ee91906133a9565b610134610b3b565b6040516100ee9190613305565b61010a610b4a565b61011f6101573660046129ab565b610bd9565b61011f61016a36600461290a565b610d94565b610134610da6565b61017f610db5565b6040516100ee919061339b565b61010a61019a366004612ace565b610ddb565b61011f610f2b565b61010a6101b536600461290a565b610f4f565b6000546001600160a01b031681565b8051516102459060281480156101e55750602882608001515110155b80156101fe57506014826080015151816101fb57fe5b06155b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642070617468206c656e67746873000000000000000000000000610f7f565b60606102548260000151610ff4565b905060606102658360800151610ff4565b90506103398160018351038151811061027a57fe5b60200260200101516001600160a01b03168360008151811061029857fe5b60200260200101516001600160a01b03161480156102f25750816000815181106102be57fe5b60200260200101516001600160a01b0316836001855103815181106102df57fe5b60200260200101516001600160a01b0316145b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c6964207061746820616c69676e6d656e7400000000000000000000610f7f565b61034161260f565b600254604080518082019091526001600160a01b03909116808252906020810161036b83876110eb565b81525091505060008060006103ad84600001518760008151811061038b57fe5b6020026020010151886001815181106103a057fe5b6020026020010151611121565b915091506000806103c889602001518a60400151868661115c565b91509150610417827f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642061546f420000000000000000000000000000000000000000610f7f565b80945050505050606082602001515160020160405190808252806020026020018201604052801561046257816020015b61044f612627565b8152602001906001900390816104475790505b5090506040518060400160405280336001600160a01b0316815260200160008152508160008151811061049157fe5b60200260200101819052506040518060400160405280336001600160a01b031681526020016001815250816001815181106104c857fe5b602090810291909101015260005b83602001515181101561053b576040518060400160405280856020015183815181106104fe57fe5b60200260200101516001600160a01b03168152602001600081525082826002018151811061052857fe5b60209081029190910101526001016104d6565b50606061054786611248565b60608801516001600160a01b0316600090815260036020526040812054919250906105b58115157f416d6d526562616c616e63657250726f787900000000000000000000000000007f726f75746572206e6f74207265636f676e697a65640000000000000000000000610f7f565b61063589606001516001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156105f557600080fd5b505afa158015610609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061062d9190810190612928565b82878a61134a565b60008151811061064157fe5b60200260200101519150506060600188516002010360405190808252806020026020018201604052801561068f57816020015b61067c61263e565b8152602001906001900390816106745790505b50905060008590506106da6001856001875103815181106106ac57fe5b6020026020010151866000815181106106c157fe5b6020026020010151868e606001518f608001518761147b565b826000815181106106e757fe5b60200260200101819052505060606107048760000151878b61151c565b905061076b8160018351038151811061071957fe5b60200260200101518411157f416d6d526562616c616e63657250726f787900000000000000000000000000007f61726220636c6f73656400000000000000000000000000000000000000000000610f7f565b60005b8760200151518110156108a95761080b8860200151828151811061078e57fe5b60200260200101516001600160a01b03168783600201815181106107ae57fe5b6020026020010151600001516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c696420706f6f6c206f776e65722061646472657373000000000000610f7f565b61088760018260020187848151811061082057fe5b602002602001015188856001018151811061083757fe5b60200260200101518c60200151868151811061084f57fe5b602002602001015187878151811061086357fe5b602002602001015188886001018151811061087a57fe5b6020026020010151611635565b83826001018151811061089657fe5b602090810291909101015260010161076e565b506108ce60016000866001885103815181106108c157fe5b60200260200101516116b3565b826001845103815181106108de57fe5b60209081029190910101526000546040517fa67a6a450000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a67a6a45906109349088908690600401613376565b600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b5050505050505050505050505050565b600080606061098384860186612946565b9250509150606061099382610ff4565b9050610a08886001600160a01b0316826000815181106109af57fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f706174685b305d206e6f742074616b6572546f6b656e00000000000000000000610f7f565b610a7e896001600160a01b031682600184510381518110610a2557fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f706174685b6c6173745d206e6f74206d616b6572546f6b656e00000000000000610f7f565b6040517f1f00ca740000000000000000000000000000000000000000000000000000000081526001600160a01b03841690631f00ca7490610ac5908a908590600401613456565b60006040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b199190810190612b3e565b600081518110610b2557fe5b6020026020010151935050505095945050505050565b6002546001600160a01b031681565b610b52610db5565b610b775760405162461bcd60e51b8152600401610b6e90613416565b60405180910390fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600080543390610c36906001600160a01b031682147f4f6e6c79446f6c6f6d6974654d617267696e00000000000000000000000000007f4f6e6c7920446f6c6f6d6974652063616e2063616c6c2066756e6374696f6e0084611741565b6000806060610c4786880188612946565b9250925092506060610c5882610ff4565b9050610c748a6001600160a01b0316826000815181106109af57fe5b610c918b6001600160a01b031682600184510381518110610a2557fe5b610c9c8a858b6117df565b6040517f38ed17390000000000000000000000000000000000000000000000000000000081526060906001600160a01b038616906338ed173990610cef908d908890879030906001420190600401613476565b600060405180830381600087803b158015610d0957600080fd5b505af1158015610d1d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d459190810190612b3e565b9050610d698c8e83600185510381518110610d5c57fe5b60200260200101516117df565b80600182510381518110610d7957fe5b60200260200101519650505050505050979650505050505050565b60036020526000908152604090205481565b6001546001600160a01b031690565b6001546000906001600160a01b0316610dcc61189a565b6001600160a01b031614905090565b610de3610db5565b610dff5760405162461bcd60e51b8152600401610b6e90613416565b610e4c8382147f416d6d526562616c616e63657250726f787900000000000000000000000000007f726f75746572732f696e6974436f64657320696e76616c6964206c656e677468610f7f565b60005b83811015610f2457828282818110610e6357fe5b9050602002013560036000878785818110610e7a57fe5b9050602002016020610e8f919081019061290a565b6001600160a01b03168152602081019190915260400160002055848482818110610eb557fe5b9050602002016020610eca919081019061290a565b6001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a848484818110610f0057fe5b90506020020135604051610f1491906133a9565b60405180910390a2600101610e4f565b5050505050565b7f416d6d526562616c616e63657250726f7879000000000000000000000000000081565b610f57610db5565b610f735760405162461bcd60e51b8152600401610b6e90613416565b610f7c8161189e565b50565b82610fef57610f8d82611938565b7f3a20000000000000000000000000000000000000000000000000000000000000610fb783611938565b604051602001610fc99392919061323d565b60408051601f198184030181529082905262461bcd60e51b8252610b6e916004016133c5565b505050565b606061105b601483518161100457fe5b0615801561101457506028835110155b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7f565b6060601483518161106857fe5b04604051908082528060200260200182016040528015611092578160200160208202803883390190505b50905060005b81518110156110e25760148102848101602001518351606082901c908590859081106110c057fe5b6001600160a01b03909216602092830291909101909101525050600101611098565b5090505b919050565b6060611118837fe6a28b91a2f6ed25ca52fc081821cf7e099221d7cad41fa6c6239bad4ce3803f846119d0565b90505b92915050565b600080611150857fe6a28b91a2f6ed25ca52fc081821cf7e099221d7cad41fa6c6239bad4ce3803f8686611ac5565b91509150935093915050565b6000808561118084611174878963ffffffff611bae16565b9063ffffffff611be816565b1091506000611195858563ffffffff611bae16565b905060006111eb6111bb6103e5866111ad578a6111af565b895b9063ffffffff611bae16565b6111de6103e86111af886111cf578b6111d1565b8c5b879063ffffffff611bae16565b816111e557fe5b04611c2a565b905060006103e58561120e57611209876103e863ffffffff611bae16565b611220565b611220886103e863ffffffff611bae16565b8161122757fe5b04905061123a828263ffffffff611d7d16565b935050505094509492505050565b60005481516040805182815260208084028201019091526060926001600160a01b0316918391908015611285578160200160208202803883390190505b50905060005b845181101561134257826001600160a01b0316638fae3be18683815181106112af57fe5b60200260200101516040518263ffffffff1660e01b81526004016112d39190613305565b60206040518083038186803b1580156112eb57600080fd5b505afa1580156112ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113239190810190612c09565b82828151811061132f57fe5b602090810291909101015260010161128b565b509392505050565b606061139c6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7f565b81516040519080825280602002602001820160405280156113c7578160200160208202803883390190505b50905082816001835103815181106113db57fe5b60209081029190910101528151600019015b80156114725760008061142b888887600187038151811061140a57fe5b602002602001015188878151811061141e57fe5b6020026020010151611dbf565b9150915061144d84848151811061143e57fe5b60200260200101518383611e18565b84600185038151811061145c57fe5b60209081029190910101525050600019016113ed565b50949350505050565b61148361263e565b60408051610100810182526004815260208082018b90528251608081018452600080825292938401929091820190815260200160008152602001888152508152602001888152602001878152602001306001600160a01b0316815260200160001981526020018584866040516020016114fe93929190613349565b60408051601f19818403018152919052905298975050505050505050565b606061156e6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7f565b8151604051908082528060200260200182016040528015611599578160200160208202803883390190505b50905082816000815181106115aa57fe5b60200260200101818152505060005b6001835103811015611342576000806115ef878685815181106115d857fe5b60200260200101518786600101815181106103a057fe5b9150915061161184848151811061160257fe5b60200260200101518383611f21565b84846001018151811061162057fe5b602090810291909101015250506001016115b9565b61163d61263e565b604080516101008101909152806005815260208082018b905260408051608081018252600181529201919081016000815260200160008152602001868152508152602001878152602001868152602001856001600160a01b03168152602001888152602001836040516020016114fe91906133a9565b6116bb61263e565b604080516101008101909152806002815260208082018790526040805160808101825260018152920191908101600081526020016001815260200160008152508152602001838152602001600019815260200160006001600160a01b031681526020018481526020016040518060200160405280600081525081525090505b9392505050565b836117d95761174f83611938565b7f3a2000000000000000000000000000000000000000000000000000000000000061177984611938565b7f203c0000000000000000000000000000000000000000000000000000000000006117a385612023565b604051610fc99594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613265565b50505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815281906001600160a01b0385169063dd62ed3e906118289030908790600401613313565b60206040518083038186803b15801561184057600080fd5b505afa158015611854573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118789190810190612c09565b1015610fef57610fef6001600160a01b0384168360001963ffffffff61218d16565b3390565b6001600160a01b0381166118c45760405162461bcd60e51b8152600401610b6e906133d6565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060808260405160200161194c919061321c565b60408051601f19818403018152919052905060205b80156119b95781516000199091019082908290811061197c57fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156119b457600101815290506110e6565b611961565b505060408051600081526020810190915292915050565b6060611a226002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7f565b60606001835103604051908082528060200260200182016040528015611a52578160200160208202803883390190505b50905060005b600184510381101561147257611a9986858381518110611a7457fe5b6020026020010151868460010181518110611a8b57fe5b6020026020010151886122e9565b828281518110611aa557fe5b6001600160a01b0390921660209283029190910190910152600101611a58565b6000806000611ad4858561235c565b509050600080611ae68988888b6122e9565b6001600160a01b031663b432a82c6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1e57600080fd5b505afa158015611b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b569190810190612bc6565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614611b9b578082611b9e565b81815b909a909950975050505050505050565b600082611bbd5750600061111b565b82820282848281611bca57fe5b04146111185760405162461bcd60e51b8152600401610b6e90613406565b600061111883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612444565b600081611c39575060006110e6565b8160017001000000000000000000000000000000008210611c5f5760809190911c9060401b5b680100000000000000008210611c7a5760409190911c9060201b5b6401000000008210611c915760209190911c9060101b5b620100008210611ca65760109190911c9060081b5b6101008210611cba5760089190911c9060041b5b60108210611ccd5760049190911c9060021b5b60088210611cd95760011b5b6001818581611ce457fe5b048201901c90506001818581611cf657fe5b048201901c90506001818581611d0857fe5b048201901c90506001818581611d1a57fe5b048201901c90506001818581611d2c57fe5b048201901c90506001818581611d3e57fe5b048201901c90506001818581611d5057fe5b048201901c90506000818581611d6257fe5b049050808210611d725780611d74565b815b95945050505050565b600061111883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061247b565b6000806000611dce858561235c565b509050600080611de08988888b6122e9565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1e57600080fd5b6000611e68600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206f757470757420616d6f756e74000000000000610f7f565b611ec2600084118015611e7b5750600083115b7f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7f565b6000611eda6103e86111af868863ffffffff611bae16565b90506000611ef46103e56111af868963ffffffff611d7d16565b9050611f176001611f0b848463ffffffff611be816565b9063ffffffff6124a716565b9695505050505050565b6000611f71600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e7420696e70757420616d6f756e7400000000000000610f7f565b611fca600084118015611e7b5750600083117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7f565b6000611fde856103e563ffffffff611bae16565b90506000611ff2828563ffffffff611bae16565b9050600061200c83611f0b886103e863ffffffff611bae16565b905080828161201757fe5b04979650505050505050565b60408051602a80825260608281019093526001600160a01b038416918391602082018180388339019050509050603060f81b8160008151811061206257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106120a357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b601481101561134257600281026120ee600f85166124cc565b8382602903815181106120fd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061213f600f85166124cc565b83826028038151811061214e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016120d5565b80158061222e57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063dd62ed3e906121dc9030908690600401613313565b60206040518083038186803b1580156121f457600080fd5b505afa158015612208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061222c9190810190612c09565b155b61224a5760405162461bcd60e51b8152600401610b6e90613436565b604051610fef9084907f095ea7b30000000000000000000000000000000000000000000000000000000090612285908690869060240161332e565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526124ee565b60008060006122f8868661235c565b915091508682826040516020016123109291906131f6565b6040516020818303038152906040528051906020012085604051602001612339939291906132c3565b60408051601f198184030181529190528051602090910120979650505050505050565b6000806123bf836001600160a01b0316856001600160a01b031614157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f6964656e746963616c2061646472657373657300000000000000000000000000610f7f565b826001600160a01b0316846001600160a01b0316106123df5782846123e2565b83835b909250905061243d6001600160a01b03831615157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f7a65726f20616464726573730000000000000000000000000000000000000000610f7f565b9250929050565b600081836124655760405162461bcd60e51b8152600401610b6e91906133c5565b50600083858161247157fe5b0495945050505050565b6000818484111561249f5760405162461bcd60e51b8152600401610b6e91906133c5565b505050900390565b6000828201838110156111185760405162461bcd60e51b8152600401610b6e906133e6565b6000600a8210156124e457506030810160f81b6110e6565b5060570160f81b90565b612500826001600160a01b03166125d3565b61251c5760405162461bcd60e51b8152600401610b6e90613446565b60006060836001600160a01b0316836040516125389190613231565b6000604051808303816000865af19150503d8060008114612575576040519150601f19603f3d011682016040523d82523d6000602084013e61257a565b606091505b50915091508161259c5760405162461bcd60e51b8152600401610b6e906133f6565b8051156117d957808060200190516125b79190810190612b73565b6117d95760405162461bcd60e51b8152600401610b6e90613426565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061260757508115155b949350505050565b60408051808201909152600081526060602082015290565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161265e612690565b8152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561111b81613669565b805161111b81613669565b60008083601f8401126126e157600080fd5b50813567ffffffffffffffff8111156126f957600080fd5b60208301915083602082028301111561243d57600080fd5b600082601f83011261272257600080fd5b8151612735612730826134e6565b6134bf565b9150818183526020840193506020810190508385602084028201111561275a57600080fd5b60005b83811015612786578161277088826128f4565b845250602092830192919091019060010161275d565b5050505092915050565b805161111b8161367d565b60008083601f8401126127ad57600080fd5b50813567ffffffffffffffff8111156127c557600080fd5b60208301915083600182028301111561243d57600080fd5b600082601f8301126127ee57600080fd5b81356127fc61273082613507565b9150808252602083016020830185838301111561281857600080fd5b6128238382846135fc565b50505092915050565b600060a0828403121561283e57600080fd5b61284860a06134bf565b9050813567ffffffffffffffff81111561286157600080fd5b61286d848285016127dd565b825250602061287e848483016128e9565b6020830152506040612892848285016128e9565b60408301525060606128a6848285016126b9565b606083015250608082013567ffffffffffffffff8111156128c657600080fd5b6128d2848285016127dd565b60808301525092915050565b805161111b81613686565b803561111b8161368f565b805161111b8161368f565b805161111b81613698565b60006020828403121561291c57600080fd5b600061260784846126b9565b60006020828403121561293a57600080fd5b600061260784846126c4565b60008060006060848603121561295b57600080fd5b600061296786866126b9565b9350506020612978868287016128e9565b925050604084013567ffffffffffffffff81111561299557600080fd5b6129a1868287016127dd565b9150509250925092565b600080600080600080600060c0888a0312156129c657600080fd5b60006129d28a8a6126b9565b97505060206129e38a828b016126b9565b96505060406129f48a828b016126b9565b9550506060612a058a828b016126b9565b9450506080612a168a828b016128e9565b93505060a088013567ffffffffffffffff811115612a3357600080fd5b612a3f8a828b0161279b565b925092505092959891949750929550565b600080600080600060808688031215612a6857600080fd5b6000612a7488886126b9565b9550506020612a85888289016126b9565b9450506040612a96888289016128e9565b935050606086013567ffffffffffffffff811115612ab357600080fd5b612abf8882890161279b565b92509250509295509295909350565b60008060008060408587031215612ae457600080fd5b843567ffffffffffffffff811115612afb57600080fd5b612b07878288016126cf565b9450945050602085013567ffffffffffffffff811115612b2657600080fd5b612b32878288016126cf565b95989497509550505050565b600060208284031215612b5057600080fd5b815167ffffffffffffffff811115612b6757600080fd5b61260784828501612711565b600060208284031215612b8557600080fd5b60006126078484612790565b600060208284031215612ba357600080fd5b813567ffffffffffffffff811115612bba57600080fd5b6126078482850161282c565b600080600060608486031215612bdb57600080fd5b6000612be786866128de565b9350506020612bf8868287016128de565b92505060406129a1868287016128ff565b600060208284031215612c1b57600080fd5b600061260784846128f4565b6000612c338383612c5b565b505060200190565b600061111883836130e6565b6000612c5383836131d2565b505060400190565b612c6481613542565b82525050565b612c64612c7682613542565b613634565b6000612c8682613535565b612c908185613539565b9350612c9b8361352f565b8060005b83811015612cc9578151612cb38882612c27565b9750612cbe8361352f565b925050600101612c9f565b509495945050505050565b6000612cdf82613535565b612ce98185613539565b935083602082028501612cfb8561352f565b8060005b85811015612d355784840389528151612d188582612c3b565b9450612d238361352f565b60209a909a0199925050600101612cff565b5091979650505050505050565b6000612d4d82613535565b612d578185613539565b9350612d628361352f565b8060005b83811015612cc9578151612d7a8882612c47565b9750612d858361352f565b925050600101612d66565b612c648161354d565b612c64612da582613552565b61359c565b612c64612da582613577565b612c648161359c565b612c64612da58261359c565b6000612dd682613535565b612de08185613539565b9350612df0818560208601613608565b612df981613645565b9093019392505050565b6000612e0e82613535565b612e1881856110e6565b9350612e28818560208601613608565b9290920192915050565b612c64816135db565b612c64816135e6565b612c64816135f1565b6000612e5a602683613539565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612eb9601b83613539565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612ef2602083613539565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000612f2b6001836110e6565b7fff00000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000612f64602183613539565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612fc3602083613539565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000612ffc602a83613539565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b600061305b603683613539565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f81527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015260400192915050565b60006130ba601f83613539565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906130fb8582612e3b565b50602083015161310e6020860182612db6565b5060408301516131216040860182613188565b50606083015161313460c0860182612db6565b50608083015161314760e0860182612db6565b5060a083015161315b610100860182612c5b565b5060c083015161316f610120860182612db6565b5060e0830151848203610140860152611d748282612dcb565b805160808301906131998482612d90565b5060208201516131ac6020850182612e44565b5060408201516131bf6040850182612e44565b5060608201516117d96060850182612db6565b805160408301906131e38482612c5b565b5060208201516117d96020850182612db6565b60006132028285612c6a565b6014820191506132128284612c6a565b5060140192915050565b60006132288284612dbf565b50602001919050565b600061173a8284612e03565b60006132498286612e03565b91506132558285612daa565b600282019150611d748284612e03565b60006132718289612e03565b915061327d8288612daa565b60028201915061328d8287612e03565b91506132998286612daa565b6002820191506132a98285612e03565b91506132b58284612d99565b506001019695505050505050565b60006132ce82612f1e565b91506132da8286612c6a565b6014820191506132ea8285612dbf565b6020820191506132fa8284612dbf565b506020019392505050565b6020810161111b8284612c5b565b604081016133218285612c5b565b61173a6020830184612c5b565b6040810161333c8285612c5b565b61173a6020830184612db6565b606081016133578286612c5b565b6133646020830185612db6565b8181036040830152611d748184612dcb565b604080825281016133878185612d42565b905081810360208301526126078184612cd4565b6020810161111b8284612d90565b6020810161111b8284612db6565b6020810161111b8284612e32565b602080825281016111188184612dcb565b6020808252810161111b81612e4d565b6020808252810161111b81612eac565b6020808252810161111b81612ee5565b6020808252810161111b81612f57565b6020808252810161111b81612fb6565b6020808252810161111b81612fef565b6020808252810161111b8161304e565b6020808252810161111b816130ad565b604081016134648285612db6565b81810360208301526126078184612c7b565b60a081016134848288612db6565b6134916020830187612db6565b81810360408301526134a38186612c7b565b90506134b26060830185612c5b565b611f176080830184612db6565b60405181810167ffffffffffffffff811182821017156134de57600080fd5b604052919050565b600067ffffffffffffffff8211156134fd57600080fd5b5060209081020190565b600067ffffffffffffffff82111561351e57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b600061111b826135c6565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b806110e681613655565b806110e68161365f565b6dffffffffffffffffffffffffffff1690565b6001600160a01b031690565b63ffffffff1690565b600061111b82613542565b600061111b8261359f565b600061111b826135a9565b82818337506000910152565b60005b8381101561362357818101518382015260200161360b565b838111156117d95750506000910152565b600061111b82600061111b8261364f565b601f01601f191690565b60601b90565b60098110610f7c57fe5b60028110610f7c57fe5b61367281613542565b8114610f7c57600080fd5b6136728161354d565b613672816135b3565b6136728161359c565b613672816135d256fea365627a7a7231582014994a316491810ff3417b1ff436b7f94c4187080d63d17ee40c76e74393a25d6c6578706572696d656e74616cf564736f6c63430005100040",
|
|
334
|
+
"metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dolomiteMargin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dolomiteAmmFactory\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"routers\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"initCodeHashes\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"RouterInitCodeHashSet\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_AMM_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_MARGIN\",\"outputs\":[{\"internalType\":\"contract IDolomiteMargin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"FILE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ROUTER_TO_INIT_CODE_HASH_MAP\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"routers\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"initCodeHashes\",\"type\":\"bytes32[]\"}],\"name\":\"adminSetRouterInitCodeHashes\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"makerToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"takerToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"orderData\",\"type\":\"bytes\"}],\"name\":\"exchange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"makerToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"takerToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"desiredMakerToken\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"orderData\",\"type\":\"bytes\"}],\"name\":\"getExchangeCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"dolomitePath\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenB\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"otherRouter\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"otherPath\",\"type\":\"bytes\"}],\"internalType\":\"struct AmmRebalancerProxy.RebalanceParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"performRebalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/AmmRebalancerProxy.sol\":\"AmmRebalancerProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol\":{\"keccak256\":\"0xfc9ce2f5a274ec66668c133f09fe213bc1a6a739f9147f4357a3493094de8deb\",\"urls\":[\"bzz-raw://e45442587f111fa0d85dd85a4e07993f5fecd1afce4f457ed21441f8b0abb937\",\"dweb:/ipfs/QmaNq3j3PUwb8Wrx2gEmFFsVa2GByDEkDCPGdwo2qvMeKh\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmFactory.sol\":{\"keccak256\":\"0xf5fd97ee3591ff30a3576d6d58847b5f6e156639578bed3827313a2c70823b78\",\"urls\":[\"bzz-raw://f9da41065f9b3b559bfc588cea01480f1c64ee7b1f1a86e54868f464fdfe2160\",\"dweb:/ipfs/QmWeBi2zSdPCENVV4fvCQ49HgnwLGxd3WS9sGMC4vR5NrB\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmPair.sol\":{\"keccak256\":\"0xe2272c233467a78460e681419f0acdc765de0ad5357d3b768665f289941ccd47\",\"urls\":[\"bzz-raw://114f1c797f4e7e803b0764ae7107a2279c3da806450287c9e5600211faeeab57\",\"dweb:/ipfs/QmUoLx1rGgCdX5ScsUkp4NsSZLyVWdKsVKeXuPCtcrAvLn\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IUniswapV2Router.sol\":{\"keccak256\":\"0xbb1dded2be890864da47836668261c2c655ec63a5fe6ccaa5da61a6376ebb03c\",\"urls\":[\"bzz-raw://8243cb7e11c97c7d95ad096d962f2be45bc1caccf6fc88a6ac0b3287031b8d1d\",\"dweb:/ipfs/QmbZuXgtDspV7P4qooQygPcoBxvoLS7A5xgJpXAsfsXrzS\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/DolomiteAmmLibrary.sol\":{\"keccak256\":\"0x9f567afb49879fd8b2b58fb327ee26bf2dc4f86bb801c755daf224d3200b78d6\",\"urls\":[\"bzz-raw://64c0838891b4e825a97c086a440cd255f7cbbbdc4de424fb57ca46cb0b283b83\",\"dweb:/ipfs/QmSuRVdDtpMLrzAMPhBgs3SGKxXJ5jCL4d6sXuNyesLyYp\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/TypedSignature.sol\":{\"keccak256\":\"0x4b4eb5fd2869d6c410948f78163773442c11bc82e393307e41359bbdb21577bf\",\"urls\":[\"bzz-raw://9c9c3abae44173086bc08f5479fbc67151d5905f60e1032ec6f9e40f841f3365\",\"dweb:/ipfs/QmbsQRX3gmcpimjFEW5ULJVavHQtViyg7NSQ2Q8Qcu6F6V\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/AmmRebalancerProxy.sol\":{\"keccak256\":\"0xf6abdb8e82e98ef3aa80971575979c309c5173ad2f1df5475a073ca473ef4f1e\",\"urls\":[\"bzz-raw://6c096544073d9946bd817c029262817d26425b2b92aa287188c403e885d53bf6\",\"dweb:/ipfs/QmXJ8FwxA2B8n8v7fTYpb9qAhc7GFbRjT2KYoNFGf4MsCn\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/uniswap-v2/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x022ea15b611c155e236053a484d21223ae6f74da3828379cd8a34a16649b5945\",\"urls\":[\"bzz-raw://41979b601b10b34937f2f5939ab5c5240759c3434e405bf84a69ef94a1612454\",\"dweb:/ipfs/QmbK4y63kjtpbxFgResFo9K2bEhNxcxoTqddpJXeHxwqcT\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x3e95a2b461f3f0cc4000d71d5c7bb6b1222788cfac1c66faad029ccaa1859d1e\",\"urls\":[\"bzz-raw://cad9773b4a1b196ea3d71129b5bd5679df7db601555a6b29ac111d38c36b00f0\",\"dweb:/ipfs/QmThFva71eLSVmBHHxn34zP7BUCJZDD6wMJHxEkKNWkkvv\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IExchangeWrapper.sol\":{\"keccak256\":\"0xfca7f5635821bbc8ff21db6982471a5f20071365496b74a8202e59494d0f327f\",\"urls\":[\"bzz-raw://eb289cb96c83a3ff7fd72d9a646694d324ee955874ef61e986850459b5841d16\",\"dweb:/ipfs/QmeeiaqShMqWpttPJ3GuDwxFzmq235HMVG7vDnLWnCupaZ\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x44ec62b766a88a2f65267991e76cab88711e733b826dc9e578cb6ad6b38b2445\",\"urls\":[\"bzz-raw://731a8d44e57c9dcd7fbdefc37a6b5889c0d06defb3bd66b921b2a7db0edf0103\",\"dweb:/ipfs/QmcVbXc9oi5DMxjPtsBF76oJzD6zVjm7RuXgJfP3Goqrrb\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0xbb17eb41ff805df51e8d637ef2a368782fdc5f085889c2d847713484f8f1967b\",\"urls\":[\"bzz-raw://538001d60d625695754159a8f716877f72217899fdab296d4725dc44bdbe1895\",\"dweb:/ipfs/QmbRm1WpPpaynnwTdmwB5M7H1cZQEtRAuExqtJ3g9SUiVp\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0x9f8e80613b7dcefc4719e57a4a3f7c9bf2cadeb1d2c205c0b667fd5c5538648d\",\"urls\":[\"bzz-raw://ad5d2626e00154cdd4651c718824108220405b75e9196f0744874527d239246b\",\"dweb:/ipfs/QmW7VgfjXDURsTLBayTL6XBkvEX7BGsT9SYCVLpYVMAJtC\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x6fb9d7889769d7cc161225f9ef7a90e468ba9788b253816f8d8b6894d3472c24\",\"urls\":[\"bzz-raw://cf4c00fc3c37cc5acf0c82ec6fd97bab67d72c2567fdc0ebf023d9c09b30a08e\",\"dweb:/ipfs/Qmb7TChG6DsEDX7LooJ4vmxot19f7VXX8S1zUGPeJTWbwZ\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x6f2c9955d65c522b80f4b8792f076512d2df947d2112cbc4d98a4781ed42ede2\",\"urls\":[\"bzz-raw://7d8ec81683520c06baeef3f7e06cd82bd6fd5fa611f26857f475f6c829540aff\",\"dweb:/ipfs/QmTDkFzKnrpiV1UKnSoiZAHPuguWzokrr4pFbSPvyaSo56\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11\",\"urls\":[\"bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b\",\"dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]},\"@uniswap/lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]}},\"version\":1}",
|
|
335
|
+
"bytecode": "0x60806040523480156200001157600080fd5b5060405162003dc838038062003dc8833981016040819052620000349162000438565b600080546001600160a01b0319166001600160a01b03861617815562000059620001f3565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b0319166001600160a01b0385161790558051825162000115911471416d6d526562616c616e63657250726f787960701b7f726f75746572732f696e6974436f64657320696e76616c6964206c656e677468620001f7602090811b62000f7f17901c565b60005b8251811015620001e8578181815181106200012f57fe5b6020026020010151600360008584815181106200014857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508281815181106200018157fe5b60200260200101516001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a838381518110620001c057fe5b6020026020010151604051620001d79190620005ca565b60405180910390a260010162000118565b5050505050620006d4565b3390565b82620002705762000211826001600160e01b036200027516565b6101d160f51b6200022b836001600160e01b036200027516565b6040516020016200023f9392919062000593565b60408051601f198184030181529082905262461bcd60e51b82526200026791600401620005da565b60405180910390fd5b505050565b606080826040516020016200028b91906200057c565b60408051601f19818403018152919052905060205b8015620002fd57815160001990910190829082908110620002bd57fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615620002f7576001018152905062000311565b620002a0565b505060408051600081526020810190915290505b919050565b80516200032381620006af565b92915050565b600082601f8301126200033b57600080fd5b8151620003526200034c826200061b565b620005f4565b915081818352602084019350602081019050838560208402820111156200037857600080fd5b60005b83811015620003a8578162000391888262000316565b84525060209283019291909101906001016200037b565b5050505092915050565b600082601f830112620003c457600080fd5b8151620003d56200034c826200061b565b91508181835260208401935060208101905083856020840282011115620003fb57600080fd5b60005b83811015620003a857816200041488826200042b565b8452506020928301929190910190600101620003fe565b80516200032381620006c9565b600080600080608085870312156200044f57600080fd5b60006200045d878762000316565b9450506020620004708782880162000316565b93505060408501516001600160401b038111156200048d57600080fd5b6200049b8782880162000329565b92505060608501516001600160401b03811115620004b857600080fd5b620004c687828801620003b2565b91505092959194509250565b620004e7620004e18262000656565b62000663565b82525050565b620004e78162000663565b620004e7620004e18262000663565b600062000514826200063c565b62000520818562000311565b93506200053281856020860162000672565b9290920192915050565b600062000549826200063c565b62000555818562000640565b93506200056781856020860162000672565b6200057281620006a5565b9093019392505050565b60006200058a8284620004f8565b50602001919050565b6000620005a1828662000507565b9150620005af8285620004d2565b600282019150620005c1828462000507565b95945050505050565b60208101620003238284620004ed565b60208082528101620005ed81846200053c565b9392505050565b6040518181016001600160401b03811182821017156200061357600080fd5b604052919050565b60006001600160401b038211156200063257600080fd5b5060209081020190565b5190565b90815260200190565b6000620003238262000666565b6001600160f01b03191690565b90565b6001600160a01b031690565b60005b838110156200068f57818101518382015260200162000675565b838111156200069f576000848401525b50505050565b601f01601f191690565b620006ba8162000649565b8114620006c657600080fd5b50565b620006ba8162000663565b6136e480620006e46000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638d5c659e11610081578063c275f5dd1161005b578063c275f5dd1461018c578063d5dbd5151461019f578063f2fde38b146101a7576100d4565b80638d5c659e1461015c5780638da5cb5b1461016f5780638f32d59b14610177576100d4565b806366d555a9116100b257806366d555a91461012c578063715018a6146101415780637d98ebac14610149576100d4565b806315c14a4a146100d957806317859b4c146100f75780633a8fdd7d1461010c575b600080fd5b6100e16101ba565b6040516100ee91906133b7565b60405180910390f35b61010a610105366004612b91565b6101c9565b005b61011f61011a366004612a50565b610972565b6040516100ee91906133a9565b610134610b3b565b6040516100ee9190613305565b61010a610b4a565b61011f6101573660046129ab565b610bd9565b61011f61016a36600461290a565b610d94565b610134610da6565b61017f610db5565b6040516100ee919061339b565b61010a61019a366004612ace565b610ddb565b61011f610f2b565b61010a6101b536600461290a565b610f4f565b6000546001600160a01b031681565b8051516102459060281480156101e55750602882608001515110155b80156101fe57506014826080015151816101fb57fe5b06155b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642070617468206c656e67746873000000000000000000000000610f7f565b60606102548260000151610ff4565b905060606102658360800151610ff4565b90506103398160018351038151811061027a57fe5b60200260200101516001600160a01b03168360008151811061029857fe5b60200260200101516001600160a01b03161480156102f25750816000815181106102be57fe5b60200260200101516001600160a01b0316836001855103815181106102df57fe5b60200260200101516001600160a01b0316145b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c6964207061746820616c69676e6d656e7400000000000000000000610f7f565b61034161260f565b600254604080518082019091526001600160a01b03909116808252906020810161036b83876110eb565b81525091505060008060006103ad84600001518760008151811061038b57fe5b6020026020010151886001815181106103a057fe5b6020026020010151611121565b915091506000806103c889602001518a60400151868661115c565b91509150610417827f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642061546f420000000000000000000000000000000000000000610f7f565b80945050505050606082602001515160020160405190808252806020026020018201604052801561046257816020015b61044f612627565b8152602001906001900390816104475790505b5090506040518060400160405280336001600160a01b0316815260200160008152508160008151811061049157fe5b60200260200101819052506040518060400160405280336001600160a01b031681526020016001815250816001815181106104c857fe5b602090810291909101015260005b83602001515181101561053b576040518060400160405280856020015183815181106104fe57fe5b60200260200101516001600160a01b03168152602001600081525082826002018151811061052857fe5b60209081029190910101526001016104d6565b50606061054786611248565b60608801516001600160a01b0316600090815260036020526040812054919250906105b58115157f416d6d526562616c616e63657250726f787900000000000000000000000000007f726f75746572206e6f74207265636f676e697a65640000000000000000000000610f7f565b61063589606001516001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156105f557600080fd5b505afa158015610609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061062d9190810190612928565b82878a61134a565b60008151811061064157fe5b60200260200101519150506060600188516002010360405190808252806020026020018201604052801561068f57816020015b61067c61263e565b8152602001906001900390816106745790505b50905060008590506106da6001856001875103815181106106ac57fe5b6020026020010151866000815181106106c157fe5b6020026020010151868e606001518f608001518761147b565b826000815181106106e757fe5b60200260200101819052505060606107048760000151878b61151c565b905061076b8160018351038151811061071957fe5b60200260200101518411157f416d6d526562616c616e63657250726f787900000000000000000000000000007f61726220636c6f73656400000000000000000000000000000000000000000000610f7f565b60005b8760200151518110156108a95761080b8860200151828151811061078e57fe5b60200260200101516001600160a01b03168783600201815181106107ae57fe5b6020026020010151600001516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c696420706f6f6c206f776e65722061646472657373000000000000610f7f565b61088760018260020187848151811061082057fe5b602002602001015188856001018151811061083757fe5b60200260200101518c60200151868151811061084f57fe5b602002602001015187878151811061086357fe5b602002602001015188886001018151811061087a57fe5b6020026020010151611635565b83826001018151811061089657fe5b602090810291909101015260010161076e565b506108ce60016000866001885103815181106108c157fe5b60200260200101516116b3565b826001845103815181106108de57fe5b60209081029190910101526000546040517fa67a6a450000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a67a6a45906109349088908690600401613376565b600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b5050505050505050505050505050565b600080606061098384860186612946565b9250509150606061099382610ff4565b9050610a08886001600160a01b0316826000815181106109af57fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f706174685b305d206e6f742074616b6572546f6b656e00000000000000000000610f7f565b610a7e896001600160a01b031682600184510381518110610a2557fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f706174685b6c6173745d206e6f74206d616b6572546f6b656e00000000000000610f7f565b6040517f1f00ca740000000000000000000000000000000000000000000000000000000081526001600160a01b03841690631f00ca7490610ac5908a908590600401613456565b60006040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b199190810190612b3e565b600081518110610b2557fe5b6020026020010151935050505095945050505050565b6002546001600160a01b031681565b610b52610db5565b610b775760405162461bcd60e51b8152600401610b6e90613416565b60405180910390fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600080543390610c36906001600160a01b031682147f4f6e6c79446f6c6f6d6974654d617267696e00000000000000000000000000007f4f6e6c7920446f6c6f6d6974652063616e2063616c6c2066756e6374696f6e0084611741565b6000806060610c4786880188612946565b9250925092506060610c5882610ff4565b9050610c748a6001600160a01b0316826000815181106109af57fe5b610c918b6001600160a01b031682600184510381518110610a2557fe5b610c9c8a858b6117df565b6040517f38ed17390000000000000000000000000000000000000000000000000000000081526060906001600160a01b038616906338ed173990610cef908d908890879030906001420190600401613476565b600060405180830381600087803b158015610d0957600080fd5b505af1158015610d1d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d459190810190612b3e565b9050610d698c8e83600185510381518110610d5c57fe5b60200260200101516117df565b80600182510381518110610d7957fe5b60200260200101519650505050505050979650505050505050565b60036020526000908152604090205481565b6001546001600160a01b031690565b6001546000906001600160a01b0316610dcc61189a565b6001600160a01b031614905090565b610de3610db5565b610dff5760405162461bcd60e51b8152600401610b6e90613416565b610e4c8382147f416d6d526562616c616e63657250726f787900000000000000000000000000007f726f75746572732f696e6974436f64657320696e76616c6964206c656e677468610f7f565b60005b83811015610f2457828282818110610e6357fe5b9050602002013560036000878785818110610e7a57fe5b9050602002016020610e8f919081019061290a565b6001600160a01b03168152602081019190915260400160002055848482818110610eb557fe5b9050602002016020610eca919081019061290a565b6001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a848484818110610f0057fe5b90506020020135604051610f1491906133a9565b60405180910390a2600101610e4f565b5050505050565b7f416d6d526562616c616e63657250726f7879000000000000000000000000000081565b610f57610db5565b610f735760405162461bcd60e51b8152600401610b6e90613416565b610f7c8161189e565b50565b82610fef57610f8d82611938565b7f3a20000000000000000000000000000000000000000000000000000000000000610fb783611938565b604051602001610fc99392919061323d565b60408051601f198184030181529082905262461bcd60e51b8252610b6e916004016133c5565b505050565b606061105b601483518161100457fe5b0615801561101457506028835110155b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7f565b6060601483518161106857fe5b04604051908082528060200260200182016040528015611092578160200160208202803883390190505b50905060005b81518110156110e25760148102848101602001518351606082901c908590859081106110c057fe5b6001600160a01b03909216602092830291909101909101525050600101611098565b5090505b919050565b6060611118837f1a9d5b55099d6a7ec208ab10001d5fd43c8c7736353a25c1af97ae381a093257846119d0565b90505b92915050565b600080611150857f1a9d5b55099d6a7ec208ab10001d5fd43c8c7736353a25c1af97ae381a0932578686611ac5565b91509150935093915050565b6000808561118084611174878963ffffffff611bae16565b9063ffffffff611be816565b1091506000611195858563ffffffff611bae16565b905060006111eb6111bb6103e5866111ad578a6111af565b895b9063ffffffff611bae16565b6111de6103e86111af886111cf578b6111d1565b8c5b879063ffffffff611bae16565b816111e557fe5b04611c2a565b905060006103e58561120e57611209876103e863ffffffff611bae16565b611220565b611220886103e863ffffffff611bae16565b8161122757fe5b04905061123a828263ffffffff611d7d16565b935050505094509492505050565b60005481516040805182815260208084028201019091526060926001600160a01b0316918391908015611285578160200160208202803883390190505b50905060005b845181101561134257826001600160a01b0316638fae3be18683815181106112af57fe5b60200260200101516040518263ffffffff1660e01b81526004016112d39190613305565b60206040518083038186803b1580156112eb57600080fd5b505afa1580156112ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113239190810190612c09565b82828151811061132f57fe5b602090810291909101015260010161128b565b509392505050565b606061139c6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7f565b81516040519080825280602002602001820160405280156113c7578160200160208202803883390190505b50905082816001835103815181106113db57fe5b60209081029190910101528151600019015b80156114725760008061142b888887600187038151811061140a57fe5b602002602001015188878151811061141e57fe5b6020026020010151611dbf565b9150915061144d84848151811061143e57fe5b60200260200101518383611e18565b84600185038151811061145c57fe5b60209081029190910101525050600019016113ed565b50949350505050565b61148361263e565b60408051610100810182526004815260208082018b90528251608081018452600080825292938401929091820190815260200160008152602001888152508152602001888152602001878152602001306001600160a01b0316815260200160001981526020018584866040516020016114fe93929190613349565b60408051601f19818403018152919052905298975050505050505050565b606061156e6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7f565b8151604051908082528060200260200182016040528015611599578160200160208202803883390190505b50905082816000815181106115aa57fe5b60200260200101818152505060005b6001835103811015611342576000806115ef878685815181106115d857fe5b60200260200101518786600101815181106103a057fe5b9150915061161184848151811061160257fe5b60200260200101518383611f21565b84846001018151811061162057fe5b602090810291909101015250506001016115b9565b61163d61263e565b604080516101008101909152806005815260208082018b905260408051608081018252600181529201919081016000815260200160008152602001868152508152602001878152602001868152602001856001600160a01b03168152602001888152602001836040516020016114fe91906133a9565b6116bb61263e565b604080516101008101909152806002815260208082018790526040805160808101825260018152920191908101600081526020016001815260200160008152508152602001838152602001600019815260200160006001600160a01b031681526020018481526020016040518060200160405280600081525081525090505b9392505050565b836117d95761174f83611938565b7f3a2000000000000000000000000000000000000000000000000000000000000061177984611938565b7f203c0000000000000000000000000000000000000000000000000000000000006117a385612023565b604051610fc99594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613265565b50505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815281906001600160a01b0385169063dd62ed3e906118289030908790600401613313565b60206040518083038186803b15801561184057600080fd5b505afa158015611854573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118789190810190612c09565b1015610fef57610fef6001600160a01b0384168360001963ffffffff61218d16565b3390565b6001600160a01b0381166118c45760405162461bcd60e51b8152600401610b6e906133d6565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060808260405160200161194c919061321c565b60408051601f19818403018152919052905060205b80156119b95781516000199091019082908290811061197c57fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156119b457600101815290506110e6565b611961565b505060408051600081526020810190915292915050565b6060611a226002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7f565b60606001835103604051908082528060200260200182016040528015611a52578160200160208202803883390190505b50905060005b600184510381101561147257611a9986858381518110611a7457fe5b6020026020010151868460010181518110611a8b57fe5b6020026020010151886122e9565b828281518110611aa557fe5b6001600160a01b0390921660209283029190910190910152600101611a58565b6000806000611ad4858561235c565b509050600080611ae68988888b6122e9565b6001600160a01b031663b432a82c6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1e57600080fd5b505afa158015611b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b569190810190612bc6565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614611b9b578082611b9e565b81815b909a909950975050505050505050565b600082611bbd5750600061111b565b82820282848281611bca57fe5b04146111185760405162461bcd60e51b8152600401610b6e90613406565b600061111883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612444565b600081611c39575060006110e6565b8160017001000000000000000000000000000000008210611c5f5760809190911c9060401b5b680100000000000000008210611c7a5760409190911c9060201b5b6401000000008210611c915760209190911c9060101b5b620100008210611ca65760109190911c9060081b5b6101008210611cba5760089190911c9060041b5b60108210611ccd5760049190911c9060021b5b60088210611cd95760011b5b6001818581611ce457fe5b048201901c90506001818581611cf657fe5b048201901c90506001818581611d0857fe5b048201901c90506001818581611d1a57fe5b048201901c90506001818581611d2c57fe5b048201901c90506001818581611d3e57fe5b048201901c90506001818581611d5057fe5b048201901c90506000818581611d6257fe5b049050808210611d725780611d74565b815b95945050505050565b600061111883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061247b565b6000806000611dce858561235c565b509050600080611de08988888b6122e9565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1e57600080fd5b6000611e68600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206f757470757420616d6f756e74000000000000610f7f565b611ec2600084118015611e7b5750600083115b7f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7f565b6000611eda6103e86111af868863ffffffff611bae16565b90506000611ef46103e56111af868963ffffffff611d7d16565b9050611f176001611f0b848463ffffffff611be816565b9063ffffffff6124a716565b9695505050505050565b6000611f71600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e7420696e70757420616d6f756e7400000000000000610f7f565b611fca600084118015611e7b5750600083117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7f565b6000611fde856103e563ffffffff611bae16565b90506000611ff2828563ffffffff611bae16565b9050600061200c83611f0b886103e863ffffffff611bae16565b905080828161201757fe5b04979650505050505050565b60408051602a80825260608281019093526001600160a01b038416918391602082018180388339019050509050603060f81b8160008151811061206257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106120a357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b601481101561134257600281026120ee600f85166124cc565b8382602903815181106120fd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061213f600f85166124cc565b83826028038151811061214e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016120d5565b80158061222e57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063dd62ed3e906121dc9030908690600401613313565b60206040518083038186803b1580156121f457600080fd5b505afa158015612208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061222c9190810190612c09565b155b61224a5760405162461bcd60e51b8152600401610b6e90613436565b604051610fef9084907f095ea7b30000000000000000000000000000000000000000000000000000000090612285908690869060240161332e565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526124ee565b60008060006122f8868661235c565b915091508682826040516020016123109291906131f6565b6040516020818303038152906040528051906020012085604051602001612339939291906132c3565b60408051601f198184030181529190528051602090910120979650505050505050565b6000806123bf836001600160a01b0316856001600160a01b031614157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f6964656e746963616c2061646472657373657300000000000000000000000000610f7f565b826001600160a01b0316846001600160a01b0316106123df5782846123e2565b83835b909250905061243d6001600160a01b03831615157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f7a65726f20616464726573730000000000000000000000000000000000000000610f7f565b9250929050565b600081836124655760405162461bcd60e51b8152600401610b6e91906133c5565b50600083858161247157fe5b0495945050505050565b6000818484111561249f5760405162461bcd60e51b8152600401610b6e91906133c5565b505050900390565b6000828201838110156111185760405162461bcd60e51b8152600401610b6e906133e6565b6000600a8210156124e457506030810160f81b6110e6565b5060570160f81b90565b612500826001600160a01b03166125d3565b61251c5760405162461bcd60e51b8152600401610b6e90613446565b60006060836001600160a01b0316836040516125389190613231565b6000604051808303816000865af19150503d8060008114612575576040519150601f19603f3d011682016040523d82523d6000602084013e61257a565b606091505b50915091508161259c5760405162461bcd60e51b8152600401610b6e906133f6565b8051156117d957808060200190516125b79190810190612b73565b6117d95760405162461bcd60e51b8152600401610b6e90613426565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061260757508115155b949350505050565b60408051808201909152600081526060602082015290565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161265e612690565b8152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561111b81613669565b805161111b81613669565b60008083601f8401126126e157600080fd5b50813567ffffffffffffffff8111156126f957600080fd5b60208301915083602082028301111561243d57600080fd5b600082601f83011261272257600080fd5b8151612735612730826134e6565b6134bf565b9150818183526020840193506020810190508385602084028201111561275a57600080fd5b60005b83811015612786578161277088826128f4565b845250602092830192919091019060010161275d565b5050505092915050565b805161111b8161367d565b60008083601f8401126127ad57600080fd5b50813567ffffffffffffffff8111156127c557600080fd5b60208301915083600182028301111561243d57600080fd5b600082601f8301126127ee57600080fd5b81356127fc61273082613507565b9150808252602083016020830185838301111561281857600080fd5b6128238382846135fc565b50505092915050565b600060a0828403121561283e57600080fd5b61284860a06134bf565b9050813567ffffffffffffffff81111561286157600080fd5b61286d848285016127dd565b825250602061287e848483016128e9565b6020830152506040612892848285016128e9565b60408301525060606128a6848285016126b9565b606083015250608082013567ffffffffffffffff8111156128c657600080fd5b6128d2848285016127dd565b60808301525092915050565b805161111b81613686565b803561111b8161368f565b805161111b8161368f565b805161111b81613698565b60006020828403121561291c57600080fd5b600061260784846126b9565b60006020828403121561293a57600080fd5b600061260784846126c4565b60008060006060848603121561295b57600080fd5b600061296786866126b9565b9350506020612978868287016128e9565b925050604084013567ffffffffffffffff81111561299557600080fd5b6129a1868287016127dd565b9150509250925092565b600080600080600080600060c0888a0312156129c657600080fd5b60006129d28a8a6126b9565b97505060206129e38a828b016126b9565b96505060406129f48a828b016126b9565b9550506060612a058a828b016126b9565b9450506080612a168a828b016128e9565b93505060a088013567ffffffffffffffff811115612a3357600080fd5b612a3f8a828b0161279b565b925092505092959891949750929550565b600080600080600060808688031215612a6857600080fd5b6000612a7488886126b9565b9550506020612a85888289016126b9565b9450506040612a96888289016128e9565b935050606086013567ffffffffffffffff811115612ab357600080fd5b612abf8882890161279b565b92509250509295509295909350565b60008060008060408587031215612ae457600080fd5b843567ffffffffffffffff811115612afb57600080fd5b612b07878288016126cf565b9450945050602085013567ffffffffffffffff811115612b2657600080fd5b612b32878288016126cf565b95989497509550505050565b600060208284031215612b5057600080fd5b815167ffffffffffffffff811115612b6757600080fd5b61260784828501612711565b600060208284031215612b8557600080fd5b60006126078484612790565b600060208284031215612ba357600080fd5b813567ffffffffffffffff811115612bba57600080fd5b6126078482850161282c565b600080600060608486031215612bdb57600080fd5b6000612be786866128de565b9350506020612bf8868287016128de565b92505060406129a1868287016128ff565b600060208284031215612c1b57600080fd5b600061260784846128f4565b6000612c338383612c5b565b505060200190565b600061111883836130e6565b6000612c5383836131d2565b505060400190565b612c6481613542565b82525050565b612c64612c7682613542565b613634565b6000612c8682613535565b612c908185613539565b9350612c9b8361352f565b8060005b83811015612cc9578151612cb38882612c27565b9750612cbe8361352f565b925050600101612c9f565b509495945050505050565b6000612cdf82613535565b612ce98185613539565b935083602082028501612cfb8561352f565b8060005b85811015612d355784840389528151612d188582612c3b565b9450612d238361352f565b60209a909a0199925050600101612cff565b5091979650505050505050565b6000612d4d82613535565b612d578185613539565b9350612d628361352f565b8060005b83811015612cc9578151612d7a8882612c47565b9750612d858361352f565b925050600101612d66565b612c648161354d565b612c64612da582613552565b61359c565b612c64612da582613577565b612c648161359c565b612c64612da58261359c565b6000612dd682613535565b612de08185613539565b9350612df0818560208601613608565b612df981613645565b9093019392505050565b6000612e0e82613535565b612e1881856110e6565b9350612e28818560208601613608565b9290920192915050565b612c64816135db565b612c64816135e6565b612c64816135f1565b6000612e5a602683613539565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612eb9601b83613539565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612ef2602083613539565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000612f2b6001836110e6565b7fff00000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000612f64602183613539565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612fc3602083613539565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000612ffc602a83613539565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b600061305b603683613539565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f81527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015260400192915050565b60006130ba601f83613539565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906130fb8582612e3b565b50602083015161310e6020860182612db6565b5060408301516131216040860182613188565b50606083015161313460c0860182612db6565b50608083015161314760e0860182612db6565b5060a083015161315b610100860182612c5b565b5060c083015161316f610120860182612db6565b5060e0830151848203610140860152611d748282612dcb565b805160808301906131998482612d90565b5060208201516131ac6020850182612e44565b5060408201516131bf6040850182612e44565b5060608201516117d96060850182612db6565b805160408301906131e38482612c5b565b5060208201516117d96020850182612db6565b60006132028285612c6a565b6014820191506132128284612c6a565b5060140192915050565b60006132288284612dbf565b50602001919050565b600061173a8284612e03565b60006132498286612e03565b91506132558285612daa565b600282019150611d748284612e03565b60006132718289612e03565b915061327d8288612daa565b60028201915061328d8287612e03565b91506132998286612daa565b6002820191506132a98285612e03565b91506132b58284612d99565b506001019695505050505050565b60006132ce82612f1e565b91506132da8286612c6a565b6014820191506132ea8285612dbf565b6020820191506132fa8284612dbf565b506020019392505050565b6020810161111b8284612c5b565b604081016133218285612c5b565b61173a6020830184612c5b565b6040810161333c8285612c5b565b61173a6020830184612db6565b606081016133578286612c5b565b6133646020830185612db6565b8181036040830152611d748184612dcb565b604080825281016133878185612d42565b905081810360208301526126078184612cd4565b6020810161111b8284612d90565b6020810161111b8284612db6565b6020810161111b8284612e32565b602080825281016111188184612dcb565b6020808252810161111b81612e4d565b6020808252810161111b81612eac565b6020808252810161111b81612ee5565b6020808252810161111b81612f57565b6020808252810161111b81612fb6565b6020808252810161111b81612fef565b6020808252810161111b8161304e565b6020808252810161111b816130ad565b604081016134648285612db6565b81810360208301526126078184612c7b565b60a081016134848288612db6565b6134916020830187612db6565b81810360408301526134a38186612c7b565b90506134b26060830185612c5b565b611f176080830184612db6565b60405181810167ffffffffffffffff811182821017156134de57600080fd5b604052919050565b600067ffffffffffffffff8211156134fd57600080fd5b5060209081020190565b600067ffffffffffffffff82111561351e57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b600061111b826135c6565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b806110e681613655565b806110e68161365f565b6dffffffffffffffffffffffffffff1690565b6001600160a01b031690565b63ffffffff1690565b600061111b82613542565b600061111b8261359f565b600061111b826135a9565b82818337506000910152565b60005b8381101561362357818101518382015260200161360b565b838111156117d95750506000910152565b600061111b82600061111b8261364f565b601f01601f191690565b60601b90565b60098110610f7c57fe5b60028110610f7c57fe5b61367281613542565b8114610f7c57600080fd5b6136728161354d565b613672816135b3565b6136728161359c565b613672816135d256fea365627a7a7231582090dce35d1403b85e810dd6bedcdb8417a622e60152ab00db5134408eb08c4be36c6578706572696d656e74616cf564736f6c63430005100040",
|
|
336
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80638d5c659e11610081578063c275f5dd1161005b578063c275f5dd1461018c578063d5dbd5151461019f578063f2fde38b146101a7576100d4565b80638d5c659e1461015c5780638da5cb5b1461016f5780638f32d59b14610177576100d4565b806366d555a9116100b257806366d555a91461012c578063715018a6146101415780637d98ebac14610149576100d4565b806315c14a4a146100d957806317859b4c146100f75780633a8fdd7d1461010c575b600080fd5b6100e16101ba565b6040516100ee91906133b7565b60405180910390f35b61010a610105366004612b91565b6101c9565b005b61011f61011a366004612a50565b610972565b6040516100ee91906133a9565b610134610b3b565b6040516100ee9190613305565b61010a610b4a565b61011f6101573660046129ab565b610bd9565b61011f61016a36600461290a565b610d94565b610134610da6565b61017f610db5565b6040516100ee919061339b565b61010a61019a366004612ace565b610ddb565b61011f610f2b565b61010a6101b536600461290a565b610f4f565b6000546001600160a01b031681565b8051516102459060281480156101e55750602882608001515110155b80156101fe57506014826080015151816101fb57fe5b06155b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642070617468206c656e67746873000000000000000000000000610f7f565b60606102548260000151610ff4565b905060606102658360800151610ff4565b90506103398160018351038151811061027a57fe5b60200260200101516001600160a01b03168360008151811061029857fe5b60200260200101516001600160a01b03161480156102f25750816000815181106102be57fe5b60200260200101516001600160a01b0316836001855103815181106102df57fe5b60200260200101516001600160a01b0316145b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c6964207061746820616c69676e6d656e7400000000000000000000610f7f565b61034161260f565b600254604080518082019091526001600160a01b03909116808252906020810161036b83876110eb565b81525091505060008060006103ad84600001518760008151811061038b57fe5b6020026020010151886001815181106103a057fe5b6020026020010151611121565b915091506000806103c889602001518a60400151868661115c565b91509150610417827f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642061546f420000000000000000000000000000000000000000610f7f565b80945050505050606082602001515160020160405190808252806020026020018201604052801561046257816020015b61044f612627565b8152602001906001900390816104475790505b5090506040518060400160405280336001600160a01b0316815260200160008152508160008151811061049157fe5b60200260200101819052506040518060400160405280336001600160a01b031681526020016001815250816001815181106104c857fe5b602090810291909101015260005b83602001515181101561053b576040518060400160405280856020015183815181106104fe57fe5b60200260200101516001600160a01b03168152602001600081525082826002018151811061052857fe5b60209081029190910101526001016104d6565b50606061054786611248565b60608801516001600160a01b0316600090815260036020526040812054919250906105b58115157f416d6d526562616c616e63657250726f787900000000000000000000000000007f726f75746572206e6f74207265636f676e697a65640000000000000000000000610f7f565b61063589606001516001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156105f557600080fd5b505afa158015610609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061062d9190810190612928565b82878a61134a565b60008151811061064157fe5b60200260200101519150506060600188516002010360405190808252806020026020018201604052801561068f57816020015b61067c61263e565b8152602001906001900390816106745790505b50905060008590506106da6001856001875103815181106106ac57fe5b6020026020010151866000815181106106c157fe5b6020026020010151868e606001518f608001518761147b565b826000815181106106e757fe5b60200260200101819052505060606107048760000151878b61151c565b905061076b8160018351038151811061071957fe5b60200260200101518411157f416d6d526562616c616e63657250726f787900000000000000000000000000007f61726220636c6f73656400000000000000000000000000000000000000000000610f7f565b60005b8760200151518110156108a95761080b8860200151828151811061078e57fe5b60200260200101516001600160a01b03168783600201815181106107ae57fe5b6020026020010151600001516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c696420706f6f6c206f776e65722061646472657373000000000000610f7f565b61088760018260020187848151811061082057fe5b602002602001015188856001018151811061083757fe5b60200260200101518c60200151868151811061084f57fe5b602002602001015187878151811061086357fe5b602002602001015188886001018151811061087a57fe5b6020026020010151611635565b83826001018151811061089657fe5b602090810291909101015260010161076e565b506108ce60016000866001885103815181106108c157fe5b60200260200101516116b3565b826001845103815181106108de57fe5b60209081029190910101526000546040517fa67a6a450000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a67a6a45906109349088908690600401613376565b600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b5050505050505050505050505050565b600080606061098384860186612946565b9250509150606061099382610ff4565b9050610a08886001600160a01b0316826000815181106109af57fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f706174685b305d206e6f742074616b6572546f6b656e00000000000000000000610f7f565b610a7e896001600160a01b031682600184510381518110610a2557fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787900000000000000000000000000007f706174685b6c6173745d206e6f74206d616b6572546f6b656e00000000000000610f7f565b6040517f1f00ca740000000000000000000000000000000000000000000000000000000081526001600160a01b03841690631f00ca7490610ac5908a908590600401613456565b60006040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b199190810190612b3e565b600081518110610b2557fe5b6020026020010151935050505095945050505050565b6002546001600160a01b031681565b610b52610db5565b610b775760405162461bcd60e51b8152600401610b6e90613416565b60405180910390fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600080543390610c36906001600160a01b031682147f4f6e6c79446f6c6f6d6974654d617267696e00000000000000000000000000007f4f6e6c7920446f6c6f6d6974652063616e2063616c6c2066756e6374696f6e0084611741565b6000806060610c4786880188612946565b9250925092506060610c5882610ff4565b9050610c748a6001600160a01b0316826000815181106109af57fe5b610c918b6001600160a01b031682600184510381518110610a2557fe5b610c9c8a858b6117df565b6040517f38ed17390000000000000000000000000000000000000000000000000000000081526060906001600160a01b038616906338ed173990610cef908d908890879030906001420190600401613476565b600060405180830381600087803b158015610d0957600080fd5b505af1158015610d1d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d459190810190612b3e565b9050610d698c8e83600185510381518110610d5c57fe5b60200260200101516117df565b80600182510381518110610d7957fe5b60200260200101519650505050505050979650505050505050565b60036020526000908152604090205481565b6001546001600160a01b031690565b6001546000906001600160a01b0316610dcc61189a565b6001600160a01b031614905090565b610de3610db5565b610dff5760405162461bcd60e51b8152600401610b6e90613416565b610e4c8382147f416d6d526562616c616e63657250726f787900000000000000000000000000007f726f75746572732f696e6974436f64657320696e76616c6964206c656e677468610f7f565b60005b83811015610f2457828282818110610e6357fe5b9050602002013560036000878785818110610e7a57fe5b9050602002016020610e8f919081019061290a565b6001600160a01b03168152602081019190915260400160002055848482818110610eb557fe5b9050602002016020610eca919081019061290a565b6001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a848484818110610f0057fe5b90506020020135604051610f1491906133a9565b60405180910390a2600101610e4f565b5050505050565b7f416d6d526562616c616e63657250726f7879000000000000000000000000000081565b610f57610db5565b610f735760405162461bcd60e51b8152600401610b6e90613416565b610f7c8161189e565b50565b82610fef57610f8d82611938565b7f3a20000000000000000000000000000000000000000000000000000000000000610fb783611938565b604051602001610fc99392919061323d565b60408051601f198184030181529082905262461bcd60e51b8252610b6e916004016133c5565b505050565b606061105b601483518161100457fe5b0615801561101457506028835110155b7f416d6d526562616c616e63657250726f787900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7f565b6060601483518161106857fe5b04604051908082528060200260200182016040528015611092578160200160208202803883390190505b50905060005b81518110156110e25760148102848101602001518351606082901c908590859081106110c057fe5b6001600160a01b03909216602092830291909101909101525050600101611098565b5090505b919050565b6060611118837f1a9d5b55099d6a7ec208ab10001d5fd43c8c7736353a25c1af97ae381a093257846119d0565b90505b92915050565b600080611150857f1a9d5b55099d6a7ec208ab10001d5fd43c8c7736353a25c1af97ae381a0932578686611ac5565b91509150935093915050565b6000808561118084611174878963ffffffff611bae16565b9063ffffffff611be816565b1091506000611195858563ffffffff611bae16565b905060006111eb6111bb6103e5866111ad578a6111af565b895b9063ffffffff611bae16565b6111de6103e86111af886111cf578b6111d1565b8c5b879063ffffffff611bae16565b816111e557fe5b04611c2a565b905060006103e58561120e57611209876103e863ffffffff611bae16565b611220565b611220886103e863ffffffff611bae16565b8161122757fe5b04905061123a828263ffffffff611d7d16565b935050505094509492505050565b60005481516040805182815260208084028201019091526060926001600160a01b0316918391908015611285578160200160208202803883390190505b50905060005b845181101561134257826001600160a01b0316638fae3be18683815181106112af57fe5b60200260200101516040518263ffffffff1660e01b81526004016112d39190613305565b60206040518083038186803b1580156112eb57600080fd5b505afa1580156112ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113239190810190612c09565b82828151811061132f57fe5b602090810291909101015260010161128b565b509392505050565b606061139c6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7f565b81516040519080825280602002602001820160405280156113c7578160200160208202803883390190505b50905082816001835103815181106113db57fe5b60209081029190910101528151600019015b80156114725760008061142b888887600187038151811061140a57fe5b602002602001015188878151811061141e57fe5b6020026020010151611dbf565b9150915061144d84848151811061143e57fe5b60200260200101518383611e18565b84600185038151811061145c57fe5b60209081029190910101525050600019016113ed565b50949350505050565b61148361263e565b60408051610100810182526004815260208082018b90528251608081018452600080825292938401929091820190815260200160008152602001888152508152602001888152602001878152602001306001600160a01b0316815260200160001981526020018584866040516020016114fe93929190613349565b60408051601f19818403018152919052905298975050505050505050565b606061156e6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7f565b8151604051908082528060200260200182016040528015611599578160200160208202803883390190505b50905082816000815181106115aa57fe5b60200260200101818152505060005b6001835103811015611342576000806115ef878685815181106115d857fe5b60200260200101518786600101815181106103a057fe5b9150915061161184848151811061160257fe5b60200260200101518383611f21565b84846001018151811061162057fe5b602090810291909101015250506001016115b9565b61163d61263e565b604080516101008101909152806005815260208082018b905260408051608081018252600181529201919081016000815260200160008152602001868152508152602001878152602001868152602001856001600160a01b03168152602001888152602001836040516020016114fe91906133a9565b6116bb61263e565b604080516101008101909152806002815260208082018790526040805160808101825260018152920191908101600081526020016001815260200160008152508152602001838152602001600019815260200160006001600160a01b031681526020018481526020016040518060200160405280600081525081525090505b9392505050565b836117d95761174f83611938565b7f3a2000000000000000000000000000000000000000000000000000000000000061177984611938565b7f203c0000000000000000000000000000000000000000000000000000000000006117a385612023565b604051610fc99594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613265565b50505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815281906001600160a01b0385169063dd62ed3e906118289030908790600401613313565b60206040518083038186803b15801561184057600080fd5b505afa158015611854573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118789190810190612c09565b1015610fef57610fef6001600160a01b0384168360001963ffffffff61218d16565b3390565b6001600160a01b0381166118c45760405162461bcd60e51b8152600401610b6e906133d6565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060808260405160200161194c919061321c565b60408051601f19818403018152919052905060205b80156119b95781516000199091019082908290811061197c57fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156119b457600101815290506110e6565b611961565b505060408051600081526020810190915292915050565b6060611a226002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7f565b60606001835103604051908082528060200260200182016040528015611a52578160200160208202803883390190505b50905060005b600184510381101561147257611a9986858381518110611a7457fe5b6020026020010151868460010181518110611a8b57fe5b6020026020010151886122e9565b828281518110611aa557fe5b6001600160a01b0390921660209283029190910190910152600101611a58565b6000806000611ad4858561235c565b509050600080611ae68988888b6122e9565b6001600160a01b031663b432a82c6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1e57600080fd5b505afa158015611b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b569190810190612bc6565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614611b9b578082611b9e565b81815b909a909950975050505050505050565b600082611bbd5750600061111b565b82820282848281611bca57fe5b04146111185760405162461bcd60e51b8152600401610b6e90613406565b600061111883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612444565b600081611c39575060006110e6565b8160017001000000000000000000000000000000008210611c5f5760809190911c9060401b5b680100000000000000008210611c7a5760409190911c9060201b5b6401000000008210611c915760209190911c9060101b5b620100008210611ca65760109190911c9060081b5b6101008210611cba5760089190911c9060041b5b60108210611ccd5760049190911c9060021b5b60088210611cd95760011b5b6001818581611ce457fe5b048201901c90506001818581611cf657fe5b048201901c90506001818581611d0857fe5b048201901c90506001818581611d1a57fe5b048201901c90506001818581611d2c57fe5b048201901c90506001818581611d3e57fe5b048201901c90506001818581611d5057fe5b048201901c90506000818581611d6257fe5b049050808210611d725780611d74565b815b95945050505050565b600061111883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061247b565b6000806000611dce858561235c565b509050600080611de08988888b6122e9565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1e57600080fd5b6000611e68600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206f757470757420616d6f756e74000000000000610f7f565b611ec2600084118015611e7b5750600083115b7f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7f565b6000611eda6103e86111af868863ffffffff611bae16565b90506000611ef46103e56111af868963ffffffff611d7d16565b9050611f176001611f0b848463ffffffff611be816565b9063ffffffff6124a716565b9695505050505050565b6000611f71600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e7420696e70757420616d6f756e7400000000000000610f7f565b611fca600084118015611e7b5750600083117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7f565b6000611fde856103e563ffffffff611bae16565b90506000611ff2828563ffffffff611bae16565b9050600061200c83611f0b886103e863ffffffff611bae16565b905080828161201757fe5b04979650505050505050565b60408051602a80825260608281019093526001600160a01b038416918391602082018180388339019050509050603060f81b8160008151811061206257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106120a357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b601481101561134257600281026120ee600f85166124cc565b8382602903815181106120fd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061213f600f85166124cc565b83826028038151811061214e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016120d5565b80158061222e57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063dd62ed3e906121dc9030908690600401613313565b60206040518083038186803b1580156121f457600080fd5b505afa158015612208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061222c9190810190612c09565b155b61224a5760405162461bcd60e51b8152600401610b6e90613436565b604051610fef9084907f095ea7b30000000000000000000000000000000000000000000000000000000090612285908690869060240161332e565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526124ee565b60008060006122f8868661235c565b915091508682826040516020016123109291906131f6565b6040516020818303038152906040528051906020012085604051602001612339939291906132c3565b60408051601f198184030181529190528051602090910120979650505050505050565b6000806123bf836001600160a01b0316856001600160a01b031614157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f6964656e746963616c2061646472657373657300000000000000000000000000610f7f565b826001600160a01b0316846001600160a01b0316106123df5782846123e2565b83835b909250905061243d6001600160a01b03831615157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f7a65726f20616464726573730000000000000000000000000000000000000000610f7f565b9250929050565b600081836124655760405162461bcd60e51b8152600401610b6e91906133c5565b50600083858161247157fe5b0495945050505050565b6000818484111561249f5760405162461bcd60e51b8152600401610b6e91906133c5565b505050900390565b6000828201838110156111185760405162461bcd60e51b8152600401610b6e906133e6565b6000600a8210156124e457506030810160f81b6110e6565b5060570160f81b90565b612500826001600160a01b03166125d3565b61251c5760405162461bcd60e51b8152600401610b6e90613446565b60006060836001600160a01b0316836040516125389190613231565b6000604051808303816000865af19150503d8060008114612575576040519150601f19603f3d011682016040523d82523d6000602084013e61257a565b606091505b50915091508161259c5760405162461bcd60e51b8152600401610b6e906133f6565b8051156117d957808060200190516125b79190810190612b73565b6117d95760405162461bcd60e51b8152600401610b6e90613426565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061260757508115155b949350505050565b60408051808201909152600081526060602082015290565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161265e612690565b8152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561111b81613669565b805161111b81613669565b60008083601f8401126126e157600080fd5b50813567ffffffffffffffff8111156126f957600080fd5b60208301915083602082028301111561243d57600080fd5b600082601f83011261272257600080fd5b8151612735612730826134e6565b6134bf565b9150818183526020840193506020810190508385602084028201111561275a57600080fd5b60005b83811015612786578161277088826128f4565b845250602092830192919091019060010161275d565b5050505092915050565b805161111b8161367d565b60008083601f8401126127ad57600080fd5b50813567ffffffffffffffff8111156127c557600080fd5b60208301915083600182028301111561243d57600080fd5b600082601f8301126127ee57600080fd5b81356127fc61273082613507565b9150808252602083016020830185838301111561281857600080fd5b6128238382846135fc565b50505092915050565b600060a0828403121561283e57600080fd5b61284860a06134bf565b9050813567ffffffffffffffff81111561286157600080fd5b61286d848285016127dd565b825250602061287e848483016128e9565b6020830152506040612892848285016128e9565b60408301525060606128a6848285016126b9565b606083015250608082013567ffffffffffffffff8111156128c657600080fd5b6128d2848285016127dd565b60808301525092915050565b805161111b81613686565b803561111b8161368f565b805161111b8161368f565b805161111b81613698565b60006020828403121561291c57600080fd5b600061260784846126b9565b60006020828403121561293a57600080fd5b600061260784846126c4565b60008060006060848603121561295b57600080fd5b600061296786866126b9565b9350506020612978868287016128e9565b925050604084013567ffffffffffffffff81111561299557600080fd5b6129a1868287016127dd565b9150509250925092565b600080600080600080600060c0888a0312156129c657600080fd5b60006129d28a8a6126b9565b97505060206129e38a828b016126b9565b96505060406129f48a828b016126b9565b9550506060612a058a828b016126b9565b9450506080612a168a828b016128e9565b93505060a088013567ffffffffffffffff811115612a3357600080fd5b612a3f8a828b0161279b565b925092505092959891949750929550565b600080600080600060808688031215612a6857600080fd5b6000612a7488886126b9565b9550506020612a85888289016126b9565b9450506040612a96888289016128e9565b935050606086013567ffffffffffffffff811115612ab357600080fd5b612abf8882890161279b565b92509250509295509295909350565b60008060008060408587031215612ae457600080fd5b843567ffffffffffffffff811115612afb57600080fd5b612b07878288016126cf565b9450945050602085013567ffffffffffffffff811115612b2657600080fd5b612b32878288016126cf565b95989497509550505050565b600060208284031215612b5057600080fd5b815167ffffffffffffffff811115612b6757600080fd5b61260784828501612711565b600060208284031215612b8557600080fd5b60006126078484612790565b600060208284031215612ba357600080fd5b813567ffffffffffffffff811115612bba57600080fd5b6126078482850161282c565b600080600060608486031215612bdb57600080fd5b6000612be786866128de565b9350506020612bf8868287016128de565b92505060406129a1868287016128ff565b600060208284031215612c1b57600080fd5b600061260784846128f4565b6000612c338383612c5b565b505060200190565b600061111883836130e6565b6000612c5383836131d2565b505060400190565b612c6481613542565b82525050565b612c64612c7682613542565b613634565b6000612c8682613535565b612c908185613539565b9350612c9b8361352f565b8060005b83811015612cc9578151612cb38882612c27565b9750612cbe8361352f565b925050600101612c9f565b509495945050505050565b6000612cdf82613535565b612ce98185613539565b935083602082028501612cfb8561352f565b8060005b85811015612d355784840389528151612d188582612c3b565b9450612d238361352f565b60209a909a0199925050600101612cff565b5091979650505050505050565b6000612d4d82613535565b612d578185613539565b9350612d628361352f565b8060005b83811015612cc9578151612d7a8882612c47565b9750612d858361352f565b925050600101612d66565b612c648161354d565b612c64612da582613552565b61359c565b612c64612da582613577565b612c648161359c565b612c64612da58261359c565b6000612dd682613535565b612de08185613539565b9350612df0818560208601613608565b612df981613645565b9093019392505050565b6000612e0e82613535565b612e1881856110e6565b9350612e28818560208601613608565b9290920192915050565b612c64816135db565b612c64816135e6565b612c64816135f1565b6000612e5a602683613539565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612eb9601b83613539565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612ef2602083613539565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000612f2b6001836110e6565b7fff00000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000612f64602183613539565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612fc3602083613539565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000612ffc602a83613539565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b600061305b603683613539565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f81527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015260400192915050565b60006130ba601f83613539565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906130fb8582612e3b565b50602083015161310e6020860182612db6565b5060408301516131216040860182613188565b50606083015161313460c0860182612db6565b50608083015161314760e0860182612db6565b5060a083015161315b610100860182612c5b565b5060c083015161316f610120860182612db6565b5060e0830151848203610140860152611d748282612dcb565b805160808301906131998482612d90565b5060208201516131ac6020850182612e44565b5060408201516131bf6040850182612e44565b5060608201516117d96060850182612db6565b805160408301906131e38482612c5b565b5060208201516117d96020850182612db6565b60006132028285612c6a565b6014820191506132128284612c6a565b5060140192915050565b60006132288284612dbf565b50602001919050565b600061173a8284612e03565b60006132498286612e03565b91506132558285612daa565b600282019150611d748284612e03565b60006132718289612e03565b915061327d8288612daa565b60028201915061328d8287612e03565b91506132998286612daa565b6002820191506132a98285612e03565b91506132b58284612d99565b506001019695505050505050565b60006132ce82612f1e565b91506132da8286612c6a565b6014820191506132ea8285612dbf565b6020820191506132fa8284612dbf565b506020019392505050565b6020810161111b8284612c5b565b604081016133218285612c5b565b61173a6020830184612c5b565b6040810161333c8285612c5b565b61173a6020830184612db6565b606081016133578286612c5b565b6133646020830185612db6565b8181036040830152611d748184612dcb565b604080825281016133878185612d42565b905081810360208301526126078184612cd4565b6020810161111b8284612d90565b6020810161111b8284612db6565b6020810161111b8284612e32565b602080825281016111188184612dcb565b6020808252810161111b81612e4d565b6020808252810161111b81612eac565b6020808252810161111b81612ee5565b6020808252810161111b81612f57565b6020808252810161111b81612fb6565b6020808252810161111b81612fef565b6020808252810161111b8161304e565b6020808252810161111b816130ad565b604081016134648285612db6565b81810360208301526126078184612c7b565b60a081016134848288612db6565b6134916020830187612db6565b81810360408301526134a38186612c7b565b90506134b26060830185612c5b565b611f176080830184612db6565b60405181810167ffffffffffffffff811182821017156134de57600080fd5b604052919050565b600067ffffffffffffffff8211156134fd57600080fd5b5060209081020190565b600067ffffffffffffffff82111561351e57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b600061111b826135c6565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b806110e681613655565b806110e68161365f565b6dffffffffffffffffffffffffffff1690565b6001600160a01b031690565b63ffffffff1690565b600061111b82613542565b600061111b8261359f565b600061111b826135a9565b82818337506000910152565b60005b8381101561362357818101518382015260200161360b565b838111156117d95750506000910152565b600061111b82600061111b8261364f565b601f01601f191690565b60601b90565b60098110610f7c57fe5b60028110610f7c57fe5b61367281613542565b8114610f7c57600080fd5b6136728161354d565b613672816135b3565b6136728161359c565b613672816135d256fea365627a7a7231582090dce35d1403b85e810dd6bedcdb8417a622e60152ab00db5134408eb08c4be36c6578706572696d656e74616cf564736f6c63430005100040",
|
|
337
337
|
"sourceMap": "1538:13600:27:-;;;2257:633;8:9:-1;5:2;;;30:1;27;20:12;5:2;2257:633:27;;;;;;;;;;;;;;;;;;;;;1293:15:6;:49;;-1:-1:-1;;;;;;1293:49:6;-1:-1:-1;;;;;1293:49:6;;;;;718:12:123;:10;:12::i;:::-;740:6;:18;;-1:-1:-1;;;;;;740:18:123;-1:-1:-1;;;;;740:18:123;;;;;;;;773:43;;740:18;;-1:-1:-1;740:18:123;-1:-1:-1;;773:43:123;;-1:-1:-1;;773:43:123;-1:-1:-1;2483:20:27;:41;;-1:-1:-1;;;;;;2483:41:27;-1:-1:-1;;;;;2483:41:27;;;;;2579:21;;2561:14;;2535:141;;2561:39;-1:-1:-1;;;2535:141:27;:12;;;;;;;:141;;:::i;:::-;2691:6;2686:198;2707:7;:14;2703:1;:18;2686:198;;;2785:14;2800:1;2785:17;;;;;;;;;;;;;;2742:28;:40;2771:7;2779:1;2771:10;;;;;;;;;;;;;;-1:-1:-1;;;;;2742:40:27;-1:-1:-1;;;;;2742:40:27;;;;;;;;;;;;:60;;;;2843:7;2851:1;2843:10;;;;;;;;;;;;;;-1:-1:-1;;;;;2821:52:27;;2855:14;2870:1;2855:17;;;;;;;;;;;;;;2821:52;;;;;;;;;;;;;;;2723:3;;2686:198;;;;2257:633;;;;1538:13600;;788:96:120;867:10;788:96;:::o;1294:426:76:-;1428:4;1423:291;;1542:24;1561:4;-1:-1:-1;;;;;1542:18:76;:24;:::i;:::-;-1:-1:-1;;;1623:26:76;1642:6;-1:-1:-1;;;;;1623:18:76;:26;:::i;:::-;1500:171;;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;1500:171:76;;;;-1:-1:-1;;;1448:255:76;;;;;;;;;;;;;;;;1423:291;1294:426;;;:::o;6359:966::-;6462:12;6537:19;6576:5;6559:23;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;6559:23:76;;;;-1:-1:-1;49:4;6688:571:76;6709:5;;6688:571;;6960:9;;-1:-1:-1;;6862:3:76;;;;6960:6;;6862:3;;6960:9;;;;;;;;;;;;:14;6956:293;;7015:1;7011:5;7141:22;;7148:6;-1:-1:-1;7221:13:76;;6956:293;6688:571;;;-1:-1:-1;;7306:12:76;;;7316:1;7306:12;;;;;;;;;-1:-1:-1;6359:966:76;;;;:::o;5:134:-1:-;83:13;;101:33;83:13;101:33;;;68:71;;;;;164:722;;292:3;285:4;277:6;273:17;269:27;259:2;;310:1;307;300:12;259:2;340:6;334:13;362:80;377:64;434:6;377:64;;;362:80;;;353:89;;459:5;484:6;477:5;470:21;514:4;506:6;502:17;492:27;;536:4;531:3;527:14;520:21;;589:6;636:3;628:4;620:6;616:17;611:3;607:27;604:36;601:2;;;653:1;650;643:12;601:2;678:1;663:217;688:6;685:1;682:13;663:217;;;746:3;768:48;812:3;800:10;768:48;;;756:61;;-1:-1;840:4;831:14;;;;859;;;;;710:1;703:9;663:217;;;667:14;252:634;;;;;;;;912:722;;1040:3;1033:4;1025:6;1021:17;1017:27;1007:2;;1058:1;1055;1048:12;1007:2;1088:6;1082:13;1110:80;1125:64;1182:6;1125:64;;1110:80;1101:89;;1207:5;1232:6;1225:5;1218:21;1262:4;1254:6;1250:17;1240:27;;1284:4;1279:3;1275:14;1268:21;;1337:6;1384:3;1376:4;1368:6;1364:17;1359:3;1355:27;1352:36;1349:2;;;1401:1;1398;1391:12;1349:2;1426:1;1411:217;1436:6;1433:1;1430:13;1411:217;;;1494:3;1516:48;1560:3;1548:10;1516:48;;;1504:61;;-1:-1;1588:4;1579:14;;;;1607;;;;;1458:1;1451:9;1411:217;;1642:134;1720:13;;1738:33;1720:13;1738:33;;1783:930;;;;;1999:3;1987:9;1978:7;1974:23;1970:33;1967:2;;;2016:1;2013;2006:12;1967:2;2051:1;2068:64;2124:7;2104:9;2068:64;;;2058:74;;2030:108;2169:2;2187:64;2243:7;2234:6;2223:9;2219:22;2187:64;;;2177:74;;2148:109;2309:2;2298:9;2294:18;2288:25;-1:-1;;;;;2325:6;2322:30;2319:2;;;2365:1;2362;2355:12;2319:2;2385:89;2466:7;2457:6;2446:9;2442:22;2385:89;;;2375:99;;2267:213;2532:2;2521:9;2517:18;2511:25;-1:-1;;;;;2548:6;2545:30;2542:2;;;2588:1;2585;2578:12;2542:2;2608:89;2689:7;2680:6;2669:9;2665:22;2608:89;;;2598:99;;2490:213;1961:752;;;;;;;;2720:148;2819:43;2838:23;2855:5;2838:23;;;2819:43;;;2814:3;2807:56;2801:67;;;2875:113;2958:24;2976:5;2958:24;;2995:152;3096:45;3116:24;3134:5;3116:24;;3154:356;;3282:38;3314:5;3282:38;;;3332:88;3413:6;3408:3;3332:88;;;3325:95;;3425:52;3470:6;3465:3;3458:4;3451:5;3447:16;3425:52;;;3489:16;;;;;3262:248;-1:-1;;3262:248;3517:347;;3629:39;3662:5;3629:39;;;3680:71;3744:6;3739:3;3680:71;;;3673:78;;3756:52;3801:6;3796:3;3789:4;3782:5;3778:16;3756:52;;;3829:29;3851:6;3829:29;;;3820:39;;;;3609:255;-1:-1;;;3609:255;3871:244;;3990:75;4061:3;4052:6;3990:75;;;-1:-1;4087:2;4078:12;;3978:137;-1:-1;3978:137;4122:553;;4338:93;4427:3;4418:6;4338:93;;;4331:100;;4442:73;4511:3;4502:6;4442:73;;;4537:1;4532:3;4528:11;4521:18;;4557:93;4646:3;4637:6;4557:93;;;4550:100;4319:356;-1:-1;;;;;4319:356;4682:213;4800:2;4785:18;;4814:71;4789:9;4858:6;4814:71;;4902:301;5040:2;5054:47;;;5025:18;;5115:78;5025:18;5179:6;5115:78;;;5107:86;5011:192;-1:-1;;;5011:192;5210:256;5272:2;5266:9;5298:17;;;-1:-1;;;;;5358:34;;5394:22;;;5355:62;5352:2;;;5430:1;5427;5420:12;5352:2;5446;5439:22;5250:216;;-1:-1;5250:216;5473:304;;-1:-1;;;;;5624:6;5621:30;5618:2;;;5664:1;5661;5654:12;5618:2;-1:-1;5699:4;5687:17;;;5752:15;;5555:222;6095:121;6182:12;;6153:63;6506:163;6609:19;;;6658:4;6649:14;;6602:67;6677:91;;6739:24;6757:5;6739:24;;6775:144;-1:-1;;;;;;6836:78;;6819:100;6926:72;6988:5;6971:27;7005:121;-1:-1;;;;;7067:54;;7050:76;7134:268;7199:1;7206:101;7220:6;7217:1;7214:13;7206:101;;;7287:11;;;7281:18;7268:11;;;7261:39;7242:2;7235:10;7206:101;;;7322:6;7319:1;7316:13;7313:2;;;7387:1;7378:6;7373:3;7369:16;7362:27;7313:2;7183:219;;;;;7571:97;7659:2;7639:14;-1:-1;;7635:28;;7619:49;7676:117;7745:24;7763:5;7745:24;;;7738:5;7735:35;7725:2;;7784:1;7781;7774:12;7725:2;7719:74;;7800:117;7869:24;7887:5;7869:24;;7843:74;1538:13600:27;;;;;;",
|
|
338
338
|
"deployedSourceMap": "1538:13600:27:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1538:13600:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1122:38:6;;;:::i;:::-;;;;;;;;;;;;;;;;5283:5266:27;;;;;;;;;:::i;:::-;;4570:707;;;;;;;;;:::i;:::-;;;;;;;;1741:35;;;:::i;:::-;;;;;;;;1684:137:123;;;:::i;3418:1146:27:-;;;;;;;;;:::i;1782:63::-;;;;;;;;;:::i;899:77:123:-;;;:::i;1250:92::-;;;:::i;:::-;;;;;;;;2896:516:27;;;;;;;;;:::i;1683:51::-;;;:::i;1970:107:123:-;;;;;;;;;:::i;1122:38:6:-;;;-1:-1:-1;;;;;1122:38:6;;:::o;5283:5266:27:-;5397:19;;:26;5371:192;;5427:2;5397:32;:65;;;;;5460:2;5433:6;:16;;;:23;:29;;5397:65;:102;;;;;5492:2;5466:6;:16;;;:23;:28;;;;;;:33;5397:102;5513:4;5371:192;:12;:192::i;:::-;5574:29;5606:35;5621:6;:19;;;5606:14;:35::i;:::-;5574:67;;5651:26;5680:32;5695:6;:16;;;5680:14;:32::i;:::-;5651:61;;5722:199;5767:9;5796:1;5777:9;:16;:20;5767:31;;;;;;;;;;;;;;-1:-1:-1;;;;;5748:50:27;:12;5761:1;5748:15;;;;;;;;;;;;;;-1:-1:-1;;;;;5748:50:27;;:107;;;;;5843:9;5853:1;5843:12;;;;;;;;;;;;;;-1:-1:-1;;;;;5802:53:27;:12;5837:1;5815:12;:19;:23;5802:37;;;;;;;;;;;;;;-1:-1:-1;;;;;5802:53:27;;5748:107;5869:4;5722:199;:12;:199::i;:::-;5970:27;;:::i;:::-;6047:20;;6089:171;;;;;;;;;-1:-1:-1;;;;;6047:20:27;;;6089:171;;;6047:20;6089:171;;;6187:58;6047:20;6232:12;6187:27;:58::i;:::-;6089:171;;;6081:179;;5283:5266;6318:21;6402:16;6420;6440:152;6491:5;:21;;;6530:12;6543:1;6530:15;;;;;;;;;;;;;;6563:12;6576:1;6563:15;;;;;;;;;;;;;;6440:33;:152::i;:::-;6401:191;;;;6607:11;6620:22;6646:175;6693:6;:22;;;6733:6;:22;;;6773:8;6799;6646:29;:175::i;:::-;6606:215;;;;6836:104;6866:6;6890:4;6836:104;:12;:104::i;:::-;6974:17;6955:36;;5283:5266;;;;7049:30;7105:5;:19;;;:26;7101:1;:30;7082:50;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7049:83;;7156:80;;;;;;;;7191:10;-1:-1:-1;;;;;7156:80:27;;;;;7224:1;7156:80;;;7142:8;7151:1;7142:11;;;;;;;;;;;;;:94;;;;7260:80;;;;;;;;7295:10;-1:-1:-1;;;;;7260:80:27;;;;;7328:1;7260:80;;;7246:8;7255:1;7246:11;;;;;;;;;;;;;;;;;:94;7356:6;7351:201;7372:5;:19;;;:26;7368:1;:30;7351:201;;;7437:104;;;;;;;;7476:5;:19;;;7496:1;7476:22;;;;;;;;;;;;;;-1:-1:-1;;;;;7437:104:27;;;;;7525:1;7437:104;;;7419:8;7432:1;7428;:5;7419:15;;;;;;;;;;;;;;;;;:122;7400:3;;7351:201;;;;7562:32;7597:41;7625:12;7597:27;:41::i;:::-;7851:18;;;;-1:-1:-1;;;;;7822:48:27;7687:18;7822:48;;;:28;:48;;;;;;7562:76;;-1:-1:-1;7687:18:27;7884:138;7914:31;;;7963:4;7884:138;:12;:138::i;:::-;8213:205;8279:6;:18;;;-1:-1:-1;;;;;8262:44:27;;:46;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8262:46:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8262:46:27;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8262:46:27;;;;;;;;;8326:17;8361:16;8395:9;8213:31;:205::i;:::-;8419:1;8213:208;;;;;;;;;;;;;;8197:224;;5283:5266;8585:35;8674:1;8652:12;:19;8648:1;:23;:27;8623:53;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;8585:91;;9001:19;9023:16;9001:38;;9066:326;9095:1;9114:18;9161:1;9133:18;:25;:29;9114:49;;;;;;;;;;;;;;9181:18;9200:1;9181:21;;;;;;;;;;;;;;9220:13;9251:6;:18;;;9287:6;:16;;;9321:14;9066:11;:326::i;:::-;9053:7;9061:1;9053:10;;;;;;;;;;;;;:339;;;;5283:5266;9450:32;9485:136;9534:5;:21;;;9569:16;9599:12;9485:35;:136::i;:::-;9450:171;;9631:146;9674:18;9721:1;9693:18;:25;:29;9674:49;;;;;;;;;;;;;;9657:13;:66;;9737:4;9631:146;:12;:146::i;:::-;9793:6;9788:541;9809:5;:19;;;:26;9805:1;:30;9788:541;;;9856:159;9911:5;:19;;;9931:1;9911:22;;;;;;;;;;;;;;-1:-1:-1;;;;;9886:47:27;:8;9895:1;9899;9895:5;9886:15;;;;;;;;;;;;;;:21;;;-1:-1:-1;;;;;9886:47:27;;9951:4;9856:159;:12;:159::i;:::-;10046:272;10076:1;10095;10099;10095:5;10118:18;10137:1;10118:21;;;;;;;;;;;;;;10157:18;10176:1;10180;10176:5;10157:25;;;;;;;;;;;;;;10200:5;:19;;;10220:1;10200:22;;;;;;;;;;;;;;10240:18;10259:1;10240:21;;;;;;;;;;;;;;10279:18;10298:1;10302;10298:5;10279:25;;;;;;;;;;;;;;10046:12;:272::i;:::-;10029:7;10037:1;10041;10037:5;10029:14;;;;;;;;;;;;;;;;;:289;9837:3;;9788:541;;;;10368:121;10400:1;10415;10430:18;10477:1;10449:18;:25;:29;10430:49;;;;;;;;;;;;;;10368:18;:121::i;:::-;10338:7;10363:1;10346:7;:14;:18;10338:27;;;;;;;;;;;;;;;;;:151;10500:15;;:42;;;;;-1:-1:-1;;;;;10500:15:27;;;;:23;;:42;;10524:8;;10534:7;;10500:42;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10500:42:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10500:42:27;;;;5283:5266;;;;;;;;;;:::o;4570:707::-;4761:7;;4798:20;4822:45;;;;4833:9;4822:45;;;4780:87;;;;;4877:21;4901:23;4916:7;4901:14;:23::i;:::-;4877:47;;4934:113;4971:10;-1:-1:-1;;;;;4960:21:27;:4;4965:1;4960:7;;;;;;;;;;;;;;-1:-1:-1;;;;;4960:21:27;;4995:4;4934:113;:12;:113::i;:::-;5057:130;5108:10;-1:-1:-1;;;;;5083:35:27;:4;5102:1;5088:4;:11;:15;5083:21;;;;;;;;;;;;;;-1:-1:-1;;;;;5083:35:27;;5132:4;5057:130;:12;:130::i;:::-;5205:62;;;;;-1:-1:-1;;;;;5205:37:27;;;;;:62;;5243:17;;5262:4;;5205:62;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5205:62:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5205:62:27;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5205:62:27;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;5205:62:27;;;;;;;;;5268:1;5205:65;;;;;;;;;;;;;;5198:72;;;;;4570:707;;;;;;;:::o;1741:35::-;;;-1:-1:-1;;;;;1741:35:27;;:::o;1684:137:123:-;1103:9;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;;;;;;;;;1766:6;;1745:40;;1782:1;;-1:-1:-1;;;;;1766:6:123;;1745:40;;1782:1;;1745:40;1795:6;:19;;;;;;1684:137::o;3418:1146:27:-;3673:7;1493:15:6;;3648:10:27;;1451:151:6;;-1:-1:-1;;;;;1493:15:6;1477:32;;1523:4;1451:151;3648:10:27;1451:12:6;:151::i;:::-;3693:14:27;;3728:20;3752:45;;;;3763:9;3752:45;;;3692:105;;;;;;3807:21;3831:23;3846:7;3831:14;:23::i;:::-;3807:47;;3864:113;3901:10;-1:-1:-1;;;;;3890:21:27;:4;3895:1;3890:7;;;;;;;3864:113;3987:130;4038:10;-1:-1:-1;;;;;4013:35:27;:4;4032:1;4018:4;:11;:15;4013:21;;;;;;;3987:130;4128:66;4154:10;4166:6;4174:19;4128:25;:66::i;:::-;4229:196;;;;;4205:21;;-1:-1:-1;;;;;4229:49:27;;;;;:196;;4292:19;;4325:12;;4351:4;;4377;;4414:1;4396:15;:19;;4229:196;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4229:196:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4229:196:27;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4229:196:27;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;4229:196:27;;;;;;;;;4205:220;;4436:76;4462:10;4474:8;4484:7;4509:1;4492:7;:14;:18;4484:27;;;;;;;;;;;;;;4436:25;:76::i;:::-;4530:7;4555:1;4538:7;:14;:18;4530:27;;;;;;;;;;;;;;4523:34;;;;;;;3418:1146;;;;;;;;;;:::o;1782:63::-;;;;;;;;;;;;;:::o;899:77:123:-;963:6;;-1:-1:-1;;;;;963:6:123;899:77;:::o;1250:92::-;1329:6;;1290:4;;-1:-1:-1;;;;;1329:6:123;1313:12;:10;:12::i;:::-;-1:-1:-1;;;;;1313:22:123;;1306:29;;1250:92;:::o;2896:516:27:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;3056:141:27;3082:39;;;3135:4;3056:141;:12;:141::i;:::-;3213:6;3208:198;3225:18;;;3208:198;;;3307:14;;3322:1;3307:17;;;;;;;;;;;;;3264:28;:40;3293:7;;3301:1;3293:10;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3264:40:27;;;;;;;;;;;;-1:-1:-1;3264:40:27;:60;3365:7;;3373:1;3365:10;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3343:52:27;;3377:14;;3392:1;3377:17;;;;;;;;;;;;;3343:52;;;;;;;;;;;;;;;3245:3;;3208:198;;;;2896:516;;;;:::o;1683:51::-;;;:::o;1970:107:123:-;1103:9;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;2042:28;2061:8;2042:18;:28::i;:::-;1970:107;:::o;1294:426:76:-;1428:4;1423:291;;1542:24;1561:4;1542:18;:24::i;:::-;1592:5;1623:26;1642:6;1623:18;:26::i;:::-;1500:171;;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;1500:171:76;;;;-1:-1:-1;;;1448:255:76;;;;;;;;1423:291;1294:426;;;:::o;11438:665:27:-;11521:16;11549:137;11592:2;11575:7;:14;:19;;;;;;:24;:48;;;;;11621:2;11603:7;:14;:20;;11575:48;11637:4;11549:137;:12;:137::i;:::-;11696:21;11751:2;11734:7;:14;:19;;;;;;11720:34;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;11720:34:27;-1:-1:-1;11696:58:27;-1:-1:-1;11769:6:27;11764:312;11785:4;:11;11781:1;:15;11764:312;;;11831:2;:6;;11984:29;;;12001:2;11984:29;11978:36;12041:7;;12051:14;;;;;12041:4;;11836:1;;12041:7;;;;;;-1:-1:-1;;;;;12041:24:27;;;:7;;;;;;;;;;;:24;-1:-1:-1;;11798:3:27;;11764:312;;;-1:-1:-1;12092:4:27;-1:-1:-1;11438:665:27;;;;:::o;1219:189:19:-;1322:16;1357:44;1366:7;1034:66;1396:4;1357:8;:44::i;:::-;1350:51;;1219:189;;;;;:::o;3495:298::-;3621:13;;3668:118;3696:7;1034:66;3750:6;3770;3668:14;:118::i;:::-;3661:125;;;;3495:298;;;;;;:::o;10608:824:27:-;10818:11;;10918:15;10872:43;10906:8;10872:29;:8;10885:15;10872:29;:12;:29;:::i;:::-;:33;:43;:33;:43;:::i;:::-;:61;;-1:-1:-1;10944:17:27;10964:22;:8;10977;10964:22;:12;:22;:::i;:::-;10944:42;;10997:16;11016:181;11127:60;11183:3;11135:6;:42;;11162:15;11135:42;;;11144:15;11135:42;11127:55;:60;:55;:60;:::i;:::-;11045:67;11107:4;11045:57;11059:6;:42;;11086:15;11059:42;;;11068:15;11059:42;11045:9;;:57;:13;:57;:::i;:67::-;:142;;;;;;11016:15;:181::i;:::-;10997:200;;11207:17;11280:3;11228:6;:48;;11258:18;:8;11271:4;11258:18;:12;:18;:::i;:::-;11228:48;;;11237:18;:8;11250:4;11237:18;:12;:18;:::i;:::-;11227:56;;;;;;;-1:-1:-1;11402:23:27;:8;11227:56;11402:23;:12;:23;:::i;:::-;11391:34;;10608:824;;;;;;;;;;:::o;14733:402::-;14855:30;14888:15;14951:11;;14940:23;;;;;;;;;;;;;;;;14830:13;;-1:-1:-1;;;;;14888:15:27;;14830:13;;14940:23;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;14940:23:27;-1:-1:-1;14913:50:27;-1:-1:-1;14978:6:27;14973:129;14994:4;:11;14990:1;:15;14973:129;;;15042:14;-1:-1:-1;;;;;15042:40:27;;15083:4;15088:1;15083:7;;;;;;;;;;;;;;15042:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15042:49:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15042:49:27;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15042:49:27;;;;;;;;;15026:10;15037:1;15026:13;;;;;;;;;;;;;;;;;:65;15007:3;;14973:129;;;-1:-1:-1;15118:10:27;14733:402;-1:-1:-1;;;14733:402:27:o;9013:715:19:-;9174:21;9207:98;9248:1;9233:4;:11;:16;;9263:4;9207:98;:12;:98::i;:::-;9336:4;:11;9325:23;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9325:23:19;;9315:33;;9388:9;9358:7;9383:1;9366:7;:14;:18;9358:27;;;;;;;;;;;;;;;;;:39;9421:11;;-1:-1:-1;;9421:15:19;9407:315;9438:5;;9407:315;;9465:14;9481:15;9500:134;9529:7;9554:12;9584:4;9593:1;9589;:5;9584:11;;;;;;;;;;;;;;9613:4;9618:1;9613:7;;;;;;;;;;;;;;9500:11;:134::i;:::-;9464:170;;;;9665:46;9677:7;9685:1;9677:10;;;;;;;;;;;;;;9689:9;9700:10;9665:11;:46::i;:::-;9648:7;9660:1;9656;:5;9648:14;;;;;;;;;;;;;;;;;:63;-1:-1:-1;;;;9445:3:19;9407:315;;;;9013:715;;;;;;:::o;12382:829:27:-;12629:25;;:::i;:::-;12673:531;;;;;;;;12719:23;12673:531;;;;;;;;;12860:94;;;;;;;-1:-1:-1;12860:94:27;;;12673:531;;;;;12860:94;;;;;;;;;12914:26;12860:94;;;;12942:11;12860:94;;;12673:531;;;;12986:15;12673:531;;;;13035:17;12673:531;;;;13089:4;-1:-1:-1;;;;;12673:531:27;;;;;-1:-1:-1;;12673:531:27;;;;13166:6;13174:12;13188:4;13155:38;;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;13155:38:27;;;12673:531;;12666:538;12382:829;-1:-1:-1;;;;;;;;12382:829:27:o;6923:578:19:-;7057:21;7090:98;7131:1;7116:4;:11;:16;;7146:4;7090:98;:12;:98::i;:::-;7219:4;:11;7208:23;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;7208:23:19;;7198:33;;7254:8;7241:7;7249:1;7241:10;;;;;;;;;;;;;:21;;;;;7277:6;7272:223;7303:1;7289:4;:11;:15;7285:1;:19;7272:223;;;7326:14;7342:15;7361:45;7376:7;7385:4;7390:1;7385:7;;;;;;;;;;;;;;7394:4;7399:1;7403;7399:5;7394:11;;;;;;;7361:45;7325:81;;;;7437:47;7450:7;7458:1;7450:10;;;;;;;;;;;;;;7462:9;7473:10;7437:12;:47::i;:::-;7420:7;7428:1;7432;7428:5;7420:14;;;;;;;;;;;;;;;;;:64;-1:-1:-1;;7306:3:19;;7272:223;;13217:830:27;13474:25;;:::i;:::-;13518:522;;;;;;;;;;13564:24;13518:522;;;;;;;;;;13706:93;;;;;;;13724:4;13706:93;;13518:522;;;13706:93;;;-1:-1:-1;13706:93:27;;;;13759:26;13706:93;;;;13787:11;13706:93;;;13518:522;;;;13831:15;13518:522;;;;13880:17;13518:522;;;;13926:13;-1:-1:-1;;;;;13518:522:27;;;;;13970:14;13518:522;;;;14016:12;14005:24;;;;;;;;;14053:674;14193:25;;:::i;:::-;14237:483;;;;;;;;;;14283:27;14237:483;;;;;;;;;;14428:84;;;;;;;14446:4;14428:84;;14237:483;;;14428:84;;;-1:-1:-1;14428:84:27;;;;14481:27;14428:84;;;;14510:1;14428:84;;;14237:483;;;;14544:8;14237:483;;;;-1:-1:-1;;14237:483:27;;;;14632:1;-1:-1:-1;;;;;14237:483:27;;;;;14665:14;14237:483;;;;14700:9;;;;;;;;;;;;14237:483;;;14230:490;;14053:674;;;;;;:::o;2962:561:76:-;3122:4;3117:400;;3236:24;3255:4;3236:18;:24::i;:::-;3286:5;3317:26;3336:6;3317:18;:26::i;:::-;3369:6;3401:19;3411:8;3401:9;:19::i;:::-;3194:280;;;;;;;;;3446:6;;3194:280;;;;3117:400;2962:561;;;;:::o;12109:267:27:-;12242:47;;;;;12292:6;;-1:-1:-1;;;;;12242:23:27;;;;;:47;;12274:4;;12281:7;;12242:47;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12242:47:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12242:47:27;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12242:47:27;;;;;;;;;:56;12238:132;;;12314:45;-1:-1:-1;;;;;12314:25:27;;12340:7;-1:-1:-1;;12314:45:27;:25;:45;:::i;788:96:120:-;867:10;788:96;:::o;2178:225:123:-;-1:-1:-1;;;;;2251:22:123;;2243:73;;;;-1:-1:-1;;;2243:73:123;;;;;;;;;2352:6;;2331:38;;-1:-1:-1;;;;;2331:38:123;;;;2352:6;;2331:38;;2352:6;;2331:38;2379:6;:17;;;;-1:-1:-1;;;;;2379:17:123;;;;;;;;;;2178:225::o;6359:966:76:-;6462:12;6537:19;6576:5;6559:23;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;6559:23:76;;;;-1:-1:-1;49:4;6688:571:76;6709:5;;6688:571;;6960:9;;-1:-1:-1;;6862:3:76;;;;6960:6;;6862:3;;6960:9;;;;;;;;;;;;:14;6956:293;;7015:1;7011:5;7141:22;;7148:6;-1:-1:-1;7221:13:76;;6956:293;6688:571;;;-1:-1:-1;;7306:12:76;;;7316:1;7306:12;;;;;;;;;7299:19;-1:-1:-1;;6359:966:76:o;1414:579:19:-;1547:16;1575:105;1616:1;1601:4;:11;:16;;1631:4;1575:105;:12;:105::i;:::-;1691:22;1744:1;1730:4;:11;:15;1716:30;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;1716:30:19;-1:-1:-1;1691:55:19;-1:-1:-1;1761:6:19;1756:209;1791:1;1777:4;:11;:15;1773:1;:19;1756:209;;;1824:130;1849:7;1874:4;1879:1;1874:7;;;;;;;;;;;;;;1899:4;1904:1;1908;1904:5;1899:11;;;;;;;;;;;;;;1928:12;1824:7;:130::i;:::-;1813:5;1819:1;1813:8;;;;;;;;-1:-1:-1;;;;;1813:141:19;;;:8;;;;;;;;;;;:141;1794:3;;1756:209;;4366:569;4522:13;4537;4563:14;4582:26;4593:6;4601;4582:10;:26::i;:::-;4562:46;;;4619:13;4634;4682:124;4707:7;4732:6;4756;4780:12;4682:7;:124::i;:::-;-1:-1:-1;;;;;4652:179:19;;:181;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4652:181:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4652:181:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4652:181:19;;;;;;;;;4618:215;;;;;;;;;4876:6;-1:-1:-1;;;;;4866:16:19;:6;-1:-1:-1;;;;;4866:16:19;;:62;;4909:8;4919;4866:62;;;4886:8;4896;4866:62;4843:85;;;;-1:-1:-1;4366:569:19;-1:-1:-1;;;;;;;;4366:569:19:o;2159:459:122:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:122;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:122;;;;;;;;3073:130;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;382:1197:128:-;430:7;453:6;449:20;;-1:-1:-1;468:1:128;461:8;;449:20;644:1;667;688:35;682:41;;678:104;;746:3;739:10;;;;;769:2;763:8;678:104;801:19;795:2;:25;791:87;;843:2;836:9;;;;;865:2;859:8;791:87;897:11;891:2;:17;887:79;;931:2;924:9;;;;;953:2;947:8;887:79;985:7;979:2;:13;975:74;;1015:2;1008:9;;;;;1037:1;1031:7;975:74;1068:5;1062:2;:11;1058:71;;1096:1;1089:8;;;;;1117:1;1111:7;1058:71;1148:4;1142:2;:10;1138:70;;1175:1;1168:8;;;;;1196:1;1190:7;1138:70;1227:3;1221:2;:9;1217:47;;1252:1;1246:7;1217:47;1292:1;1286;1282;:5;;;;;;1278:1;:9;1277:16;;1273:20;;1322:1;1316;1312;:5;;;;;;1308:1;:9;1307:16;;1303:20;;1352:1;1346;1342;:5;;;;;;1338:1;:9;1337:16;;1333:20;;1382:1;1376;1372;:5;;;;;;1368:1;:9;1367:16;;1363:20;;1412:1;1406;1402;:5;;;;;;1398:1;:9;1397:16;;1393:20;;1442:1;1436;1432;:5;;;;;;1428:1;:9;1427:16;;1423:20;;1472:1;1466;1462;:5;;;;;;1458:1;:9;1457:16;;1453:20;;1520:10;1537:1;1533;:5;;;;;;1520:18;;1560:2;1556:1;:6;:15;;1569:2;1556:15;;;1565:1;1556:15;1548:24;382:1197;-1:-1:-1;;;;;382:1197:128:o;1274:134:122:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;3799:561:19:-;3952:13;3967;3993:14;4012:26;4023:6;4031;4012:10;:26::i;:::-;3992:46;;;4049:13;4064;4110:124;4135:7;4160:6;4184;4208:12;4110:7;:124::i;:::-;-1:-1:-1;;;;;4082:174:19;;:176;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;6265:579:19;6358:13;6383:109;6421:1;6409:9;:13;6436:4;6383:109;:12;:109::i;:::-;6502:123;6540:1;6528:9;:13;:31;;;;;6558:1;6545:10;:14;6528:31;6573:4;6502:123;:12;:123::i;:::-;6635:14;6652:34;6681:4;6652:24;:9;6666;6652:24;:13;:24;:::i;:34::-;6635:51;-1:-1:-1;6696:16:19;6715:34;6745:3;6715:25;:10;6730:9;6715:25;:14;:25;:::i;:34::-;6696:53;-1:-1:-1;6804:33:19;6835:1;6804:26;:9;6696:53;6804:26;:13;:26;:::i;:::-;:30;:33;:30;:33;:::i;:::-;6793:44;6265:579;-1:-1:-1;;;;;;6265:579:19:o;5559:588::-;5652:14;5678:107;5715:1;5704:8;:12;5730:4;5678:107;:12;:107::i;:::-;5795:123;5833:1;5821:9;:13;:31;;;;;5851:1;5838:10;:14;5866:4;5795:123;:12;:123::i;:::-;5928:20;5951:17;:8;5964:3;5951:17;:12;:17;:::i;:::-;5928:40;-1:-1:-1;5978:14:19;5995:31;5928:40;6015:10;5995:31;:19;:31;:::i;:::-;5978:48;-1:-1:-1;6036:16:19;6055:40;6079:15;6055:19;:9;6069:4;6055:19;:13;:19;:::i;:40::-;6036:59;;6129:11;6117:9;:23;;;;;;;5559:588;-1:-1:-1;;;;;;;5559:588:19:o;8249:962:76:-;8521:13;;;8531:2;8521:13;;;8343:12;8521:13;;;;;;-1:-1:-1;;;;;8383:14:76;;;8343:12;;8521:13;;;21:6:-1;;104:10;8521:13:76;87:34:-1;135:17;;-1:-1;8521:13:76;8499:35;;902:2;8598:23;;8586:6;8593:1;8586:9;;;;;;;;;;;:35;;;;;;;;;;;1010:3;8643:27;;8631:6;8638:1;8631:9;;;;;;;;;;;:39;;;;;;;;;;-1:-1:-1;8784:9:76;8779:402;8803:2;8799:1;:6;8779:402;;;8892:1;8888:5;;8985:23;1232:3;8990:17;;8985:4;:23::i;:::-;8964:6;8976:5;8971:2;:10;8964:18;;;;;;;;;;;:44;;;;;;;;;;;9031:1;9026;:6;;9022:10;;9123:23;1232:3;9128:1;:17;9123:4;:23::i;:::-;9102:6;9114:5;9109:2;:10;9102:18;;;;;;;;;;;:44;;;;;;;;;;-1:-1:-1;;9169:1:76;9164:6;;;;;8807:3;;8779:402;;1050:612:125;1415:10;;;1414:62;;-1:-1:-1;1431:39:125;;;;;-1:-1:-1;;;;;1431:15:125;;;;;:39;;1455:4;;1462:7;;1431:39;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1431:39:125;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1431:39:125;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1431:39:125;;;;;;;;;:44;1414:62;1406:150;;;;-1:-1:-1;;;1406:150:125;;;;;;;;;1592:62;;1566:89;;1585:5;;1615:22;;1592:62;;1639:7;;1648:5;;1592:62;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;1592:62:125;;;49:4:-1;25:18;;61:17;;1592:62:125;182:15:-1;1592:62:125;;;;179:29:-1;;;;160:49;;;1566:18:125;:89::i;2855:585:19:-;3004:12;3029:14;3045;3063:26;3074:6;3082;3063:10;:26::i;:::-;3028:61;;;;3255:7;3315:6;3323;3298:32;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3298:32:19;;;3288:43;;;;;;3357:12;3180:211;;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;3180:211:19;;;3149:260;;49:4:-1;3149:260:19;;;;;2855:585;-1:-1:-1;;;;;;;2855:585:19:o;2099:423::-;2174:14;2190;2216:105;2252:6;-1:-1:-1;;;;;2242:16:19;:6;-1:-1:-1;;;;;2242:16:19;;;2272:4;2216:105;:12;:105::i;:::-;2359:6;-1:-1:-1;;;;;2350:15:19;:6;-1:-1:-1;;;;;2350:15:19;;:53;;2388:6;2396;2350:53;;;2369:6;2377;2350:53;2331:72;;-1:-1:-1;2331:72:19;-1:-1:-1;2413:102:19;-1:-1:-1;;;;;2439:20:19;;;;2473:4;2413:102;:12;:102::i;:::-;2099:423;;;;;:::o;3718:338:122:-;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:122;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:122:o;1732:187::-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:122;;;;;;;;;;-1:-1:-1;;;1888:5:122;;;1732:187::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;-1:-1:-1;;;938:46:122;;;;;;;;10183:325:76;10272:4;10340:2;10332:5;:10;10328:79;;;-1:-1:-1;902:2:76;10376:18;;10365:31;;10358:38;;10328:79;-1:-1:-1;956:2:76;10472:27;10461:40;;;10183:325::o;2666:1095:125:-;3261:27;3269:5;-1:-1:-1;;;;;3261:25:125;;:27::i;:::-;3253:71;;;;-1:-1:-1;;;3253:71:125;;;;;;;;;3395:12;3409:23;3444:5;-1:-1:-1;;;;;3436:19:125;3456:4;3436:25;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3394:67:125;;;;3479:7;3471:52;;;;-1:-1:-1;;;3471:52:125;;;;;;;;;3538:17;;:21;3534:221;;3678:10;3667:30;;;;;;;;;;;;;;3659:85;;;;-1:-1:-1;;;3659:85:125;;;;;;;;686:610:126;746:4;1207:20;;1052:66;1246:23;;;;;;:42;;-1:-1:-1;1273:15:126;;;1246:42;1238:51;686:610;-1:-1:-1;;;;686:610:126:o;1538:13600:27:-;;;;;;;;;;-1:-1:-1;1538:13600:27;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1538:13600:27;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1538:13600:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1538:13600:27;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1538:13600:27;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:134;220:13;;238:33;220:13;238:33;;454:352;;;584:3;577:4;569:6;565:17;561:27;551:2;;602:1;599;592:12;551:2;-1:-1;622:20;;662:18;651:30;;648:2;;;694:1;691;684:12;648:2;728:4;720:6;716:17;704:29;;779:3;771:4;763:6;759:17;749:8;745:32;742:41;739:2;;;796:1;793;786:12;1210:722;;1338:3;1331:4;1323:6;1319:17;1315:27;1305:2;;1356:1;1353;1346:12;1305:2;1386:6;1380:13;1408:80;1423:64;1480:6;1423:64;;;1408:80;;;1399:89;;1505:5;1530:6;1523:5;1516:21;1560:4;1552:6;1548:17;1538:27;;1582:4;1577:3;1573:14;1566:21;;1635:6;1682:3;1674:4;1666:6;1662:17;1657:3;1653:27;1650:36;1647:2;;;1699:1;1696;1689:12;1647:2;1724:1;1709:217;1734:6;1731:1;1728:13;1709:217;;;1792:3;1814:48;1858:3;1846:10;1814:48;;;1802:61;;-1:-1;1886:4;1877:14;;;;1905;;;;;1756:1;1749:9;1709:217;;;1713:14;1298:634;;;;;;;;1940:128;2015:13;;2033:30;2015:13;2033:30;;2089:336;;;2203:3;2196:4;2188:6;2184:17;2180:27;2170:2;;2221:1;2218;2211:12;2170:2;-1:-1;2241:20;;2281:18;2270:30;;2267:2;;;2313:1;2310;2303:12;2267:2;2347:4;2339:6;2335:17;2323:29;;2398:3;2390:4;2382:6;2378:17;2368:8;2364:32;2361:41;2358:2;;;2415:1;2412;2405:12;2434:432;;2531:3;2524:4;2516:6;2512:17;2508:27;2498:2;;2549:1;2546;2539:12;2498:2;2586:6;2573:20;2608:60;2623:44;2660:6;2623:44;;2608:60;2599:69;;2688:6;2681:5;2674:21;2724:4;2716:6;2712:17;2757:4;2750:5;2746:16;2792:3;2783:6;2778:3;2774:16;2771:25;2768:2;;;2809:1;2806;2799:12;2768:2;2819:41;2853:6;2848:3;2843;2819:41;;;2491:375;;;;;;;;2922:1132;;3044:4;3032:9;3027:3;3023:19;3019:30;3016:2;;;3062:1;3059;3052:12;3016:2;3080:20;3095:4;3080:20;;;3071:29;-1:-1;3158:31;;3209:18;3198:30;;3195:2;;;3241:1;3238;3231:12;3195:2;3276:54;3326:3;3317:6;3306:9;3302:22;3276:54;;;3251:80;;-1:-1;3403:2;3436:49;3481:3;3457:22;;;3436:49;;;3429:4;3422:5;3418:16;3411:75;3352:145;3558:2;3591:49;3636:3;3627:6;3616:9;3612:22;3591:49;;;3584:4;3577:5;3573:16;3566:75;3507:145;3709:2;3742:49;3787:3;3778:6;3767:9;3763:22;3742:49;;;3735:4;3728:5;3724:16;3717:75;3662:141;3886:3;3875:9;3871:19;3858:33;3911:18;3903:6;3900:30;3897:2;;;3943:1;3940;3933:12;3897:2;3978:54;4028:3;4019:6;4008:9;4004:22;3978:54;;;3971:4;3964:5;3960:16;3953:80;3813:231;3010:1044;;;;;4061:134;4139:13;;4157:33;4139:13;4157:33;;4202:130;4269:20;;4294:33;4269:20;4294:33;;4339:134;4417:13;;4435:33;4417:13;4435:33;;4480:132;4557:13;;4575:32;4557:13;4575:32;;4619:241;;4723:2;4711:9;4702:7;4698:23;4694:32;4691:2;;;4739:1;4736;4729:12;4691:2;4774:1;4791:53;4836:7;4816:9;4791:53;;4867:263;;4982:2;4970:9;4961:7;4957:23;4953:32;4950:2;;;4998:1;4995;4988:12;4950:2;5033:1;5050:64;5106:7;5086:9;5050:64;;5137:603;;;;5288:2;5276:9;5267:7;5263:23;5259:32;5256:2;;;5304:1;5301;5294:12;5256:2;5339:1;5356:61;5409:7;5389:9;5356:61;;;5346:71;;5318:105;5454:2;5472:53;5517:7;5508:6;5497:9;5493:22;5472:53;;;5462:63;;5433:98;5590:2;5579:9;5575:18;5562:32;5614:18;5606:6;5603:30;5600:2;;;5646:1;5643;5636:12;5600:2;5666:58;5716:7;5707:6;5696:9;5692:22;5666:58;;;5656:68;;5541:189;5250:490;;;;;;5747:993;;;;;;;;5955:3;5943:9;5934:7;5930:23;5926:33;5923:2;;;5972:1;5969;5962:12;5923:2;6007:1;6024:53;6069:7;6049:9;6024:53;;;6014:63;;5986:97;6114:2;6132:53;6177:7;6168:6;6157:9;6153:22;6132:53;;;6122:63;;6093:98;6222:2;6240:53;6285:7;6276:6;6265:9;6261:22;6240:53;;;6230:63;;6201:98;6330:2;6348:53;6393:7;6384:6;6373:9;6369:22;6348:53;;;6338:63;;6309:98;6438:3;6457:53;6502:7;6493:6;6482:9;6478:22;6457:53;;;6447:63;;6417:99;6575:3;6564:9;6560:19;6547:33;6600:18;6592:6;6589:30;6586:2;;;6632:1;6629;6622:12;6586:2;6660:64;6716:7;6707:6;6696:9;6692:22;6660:64;;;6650:74;;;;6526:204;5917:823;;;;;;;;;;;6747:741;;;;;;6921:3;6909:9;6900:7;6896:23;6892:33;6889:2;;;6938:1;6935;6928:12;6889:2;6973:1;6990:53;7035:7;7015:9;6990:53;;;6980:63;;6952:97;7080:2;7098:53;7143:7;7134:6;7123:9;7119:22;7098:53;;;7088:63;;7059:98;7188:2;7206:53;7251:7;7242:6;7231:9;7227:22;7206:53;;;7196:63;;7167:98;7324:2;7313:9;7309:18;7296:32;7348:18;7340:6;7337:30;7334:2;;;7380:1;7377;7370:12;7334:2;7408:64;7464:7;7455:6;7444:9;7440:22;7408:64;;;7398:74;;;;7275:203;6883:605;;;;;;;;;7495:678;;;;;7686:2;7674:9;7665:7;7661:23;7657:32;7654:2;;;7702:1;7699;7692:12;7654:2;7737:31;;7788:18;7777:30;;7774:2;;;7820:1;7817;7810:12;7774:2;7848:80;7920:7;7911:6;7900:9;7896:22;7848:80;;;7838:90;;;;7716:218;7993:2;7982:9;7978:18;7965:32;8017:18;8009:6;8006:30;8003:2;;;8049:1;8046;8039:12;8003:2;8077:80;8149:7;8140:6;8129:9;8125:22;8077:80;;;7648:525;;;;-1:-1;8067:90;-1:-1;;;;7648:525;8180:392;;8320:2;8308:9;8299:7;8295:23;8291:32;8288:2;;;8336:1;8333;8326:12;8288:2;8371:24;;8415:18;8404:30;;8401:2;;;8447:1;8444;8437:12;8401:2;8467:89;8548:7;8539:6;8528:9;8524:22;8467:89;;8579:257;;8691:2;8679:9;8670:7;8666:23;8662:32;8659:2;;;8707:1;8704;8697:12;8659:2;8742:1;8759:61;8812:7;8792:9;8759:61;;8843:393;;8980:2;8968:9;8959:7;8955:23;8951:32;8948:2;;;8996:1;8993;8986:12;8948:2;9031:31;;9082:18;9071:30;;9068:2;;;9114:1;9111;9104:12;9068:2;9134:86;9212:7;9203:6;9192:9;9188:22;9134:86;;9243:533;;;;9391:2;9379:9;9370:7;9366:23;9362:32;9359:2;;;9407:1;9404;9397:12;9359:2;9442:1;9459:64;9515:7;9495:9;9459:64;;;9449:74;;9421:108;9560:2;9578:64;9634:7;9625:6;9614:9;9610:22;9578:64;;;9568:74;;9539:109;9679:2;9697:63;9752:7;9743:6;9732:9;9728:22;9697:63;;9783:263;;9898:2;9886:9;9877:7;9873:23;9869:32;9866:2;;;9914:1;9911;9904:12;9866:2;9949:1;9966:64;10022:7;10002:9;9966:64;;10054:173;;10141:46;10183:3;10175:6;10141:46;;;-1:-1;;10216:4;10207:14;;10134:93;10236:257;;10387:100;10483:3;10475:6;10387:100;;10502:253;;10627:88;10711:3;10703:6;10627:88;;;-1:-1;;10744:4;10735:14;;10620:135;10763:103;10836:24;10854:5;10836:24;;;10831:3;10824:37;10818:48;;;10993:152;11094:45;11114:24;11132:5;11114:24;;;11094:45;;11183:690;;11328:54;11376:5;11328:54;;;11395:86;11474:6;11469:3;11395:86;;;11388:93;;11502:56;11552:5;11502:56;;;11578:7;11606:1;11591:260;11616:6;11613:1;11610:13;11591:260;;;11683:6;11677:13;11704:63;11763:3;11748:13;11704:63;;;11697:70;;11784:60;11837:6;11784:60;;;11774:70;-1:-1;;11638:1;11631:9;11591:260;;;-1:-1;11864:3;;11307:566;-1:-1;;;;;11307:566;11948:1048;;12143:79;12216:5;12143:79;;;12235:111;12339:6;12334:3;12235:111;;;12228:118;;12369:3;12411:4;12403:6;12399:17;12394:3;12390:27;12438:81;12513:5;12438:81;;;12539:7;12567:1;12552:405;12577:6;12574:1;12571:13;12552:405;;;12639:9;12633:4;12629:20;12624:3;12617:33;12684:6;12678:13;12706:114;12815:4;12800:13;12706:114;;;12698:122;;12837:85;12915:6;12837:85;;;12945:4;12936:14;;;;;12827:95;-1:-1;;12599:1;12592:9;12552:405;;;-1:-1;12970:4;;12122:874;-1:-1;;;;;;;12122:874;13059:842;;13242:73;13309:5;13242:73;;;13328:105;13426:6;13421:3;13328:105;;;13321:112;;13454:75;13523:5;13454:75;;;13549:7;13577:1;13562:317;13587:6;13584:1;13581:13;13562:317;;;13654:6;13648:13;13675:101;13772:3;13757:13;13675:101;;;13668:108;;13793:79;13865:6;13793:79;;;13783:89;-1:-1;;13609:1;13602:9;13562:317;;13909:94;13976:21;13991:5;13976:21;;14121:148;14220:43;14239:23;14256:5;14239:23;;;14220:43;;14276:148;14375:43;14394:23;14411:5;14394:23;;14431:113;14514:24;14532:5;14514:24;;14551:152;14652:45;14672:24;14690:5;14672:24;;14710:343;;14820:38;14852:5;14820:38;;;14870:70;14933:6;14928:3;14870:70;;;14863:77;;14945:52;14990:6;14985:3;14978:4;14971:5;14967:16;14945:52;;;15018:29;15040:6;15018:29;;;15009:39;;;;14800:253;-1:-1;;;14800:253;15060:356;;15188:38;15220:5;15188:38;;;15238:88;15319:6;15314:3;15238:88;;;15231:95;;15331:52;15376:6;15371:3;15364:4;15357:5;15353:16;15331:52;;;15395:16;;;;;15168:248;-1:-1;;15168:248;15745:176;15853:62;15909:5;15853:62;;15928:144;16015:51;16060:5;16015:51;;16079:158;16173:58;16225:5;16173:58;;16758:375;;16918:67;16982:2;16977:3;16918:67;;;17018:34;16998:55;;17087:8;17082:2;17073:12;;17066:30;17124:2;17115:12;;16904:229;-1:-1;;16904:229;17142:327;;17302:67;17366:2;17361:3;17302:67;;;17402:29;17382:50;;17460:2;17451:12;;17288:181;-1:-1;;17288:181;17478:332;;17638:67;17702:2;17697:3;17638:67;;;17738:34;17718:55;;17801:2;17792:12;;17624:186;-1:-1;;17624:186;17819:398;;17997:84;18079:1;18074:3;17997:84;;;18114:66;18094:87;;18209:1;18200:11;;17983:234;-1:-1;;17983:234;18226:370;;18386:67;18450:2;18445:3;18386:67;;;18486:34;18466:55;;18555:3;18550:2;18541:12;;18534:25;18587:2;18578:12;;18372:224;-1:-1;;18372:224;18605:332;;18765:67;18829:2;18824:3;18765:67;;;18865:34;18845:55;;18928:2;18919:12;;18751:186;-1:-1;;18751:186;18946:379;;19106:67;19170:2;19165:3;19106:67;;;19206:34;19186:55;;19275:12;19270:2;19261:12;;19254:34;19316:2;19307:12;;19092:233;-1:-1;;19092:233;19334:391;;19494:67;19558:2;19553:3;19494:67;;;19594:34;19574:55;;19663:24;19658:2;19649:12;;19642:46;19716:2;19707:12;;19480:245;-1:-1;;19480:245;19734:331;;19894:67;19958:2;19953:3;19894:67;;;19994:33;19974:54;;20056:2;20047:12;;19880:185;-1:-1;;19880:185;20134:1616;20353:23;;20134:1616;;20279:6;20270:16;;;20382:77;20274:3;20353:23;20382:77;;;20301:164;20543:4;20536:5;20532:16;20526:23;20555:63;20612:4;20607:3;20603:14;20589:12;20555:63;;;20475:149;20699:4;20692:5;20688:16;20682:23;20711:119;20824:4;20819:3;20815:14;20801:12;20711:119;;;20634:202;20920:4;20913:5;20909:16;20903:23;20932:63;20989:4;20984:3;20980:14;20966:12;20932:63;;;20846:155;21087:4;21080:5;21076:16;21070:23;21099:63;21156:4;21151:3;21147:14;21133:12;21099:63;;;21011:157;21249:4;21242:5;21238:16;21232:23;21261:65;21318:6;21313:3;21309:16;21295:12;21261:65;;;21178:154;21415:4;21408:5;21404:16;21398:23;21427:65;21484:6;21479:3;21475:16;21461:12;21427:65;;;21342:156;21571:4;21564:5;21560:16;21554:23;21625:3;21619:4;21615:14;21606:6;21601:3;21597:16;21590:40;21645:67;21707:4;21693:12;21645:67;;21816:821;22021:23;;21955:4;21946:14;;;22050:57;21950:3;22021:23;22050:57;;;21975:138;22194:4;22187:5;22183:16;22177:23;22206:84;22284:4;22279:3;22275:14;22261:12;22206:84;;;22123:173;22368:4;22361:5;22357:16;22351:23;22380:81;22455:4;22450:3;22446:14;22432:12;22380:81;;;22306:161;22541:4;22534:5;22530:16;22524:23;22553:63;22610:4;22605:3;22601:14;22587:12;22553:63;;22693:461;22885:23;;22818:4;22809:14;;;22914:63;22813:3;22885:23;22914:63;;;22838:145;23058:4;23051:5;23047:16;23041:23;23070:63;23127:4;23122:3;23118:14;23104:12;23070:63;;23391:383;;23538:75;23609:3;23600:6;23538:75;;;23635:2;23630:3;23626:12;23619:19;;23649:75;23720:3;23711:6;23649:75;;;-1:-1;23746:2;23737:12;;23526:248;-1:-1;;23526:248;23781:244;;23900:75;23971:3;23962:6;23900:75;;;-1:-1;23997:2;23988:12;;23888:137;-1:-1;23888:137;24032:262;;24176:93;24265:3;24256:6;24176:93;;24301:553;;24517:93;24606:3;24597:6;24517:93;;;24510:100;;24621:73;24690:3;24681:6;24621:73;;;24716:1;24711:3;24707:11;24700:18;;24736:93;24825:3;24816:6;24736:93;;24861:978;;25175:93;25264:3;25255:6;25175:93;;;25168:100;;25279:73;25348:3;25339:6;25279:73;;;25374:1;25369:3;25365:11;25358:18;;25394:93;25483:3;25474:6;25394:93;;;25387:100;;25498:73;25567:3;25558:6;25498:73;;;25593:1;25588:3;25584:11;25577:18;;25613:93;25702:3;25693:6;25613:93;;;25606:100;;25717:73;25786:3;25777:6;25717:73;;;-1:-1;25812:1;25803:11;;25156:683;-1:-1;;;;;;25156:683;25846:789;;26129:148;26273:3;26129:148;;;26122:155;;26288:75;26359:3;26350:6;26288:75;;;26385:2;26380:3;26376:12;26369:19;;26399:75;26470:3;26461:6;26399:75;;;26496:2;26491:3;26487:12;26480:19;;26510:75;26581:3;26572:6;26510:75;;;-1:-1;26607:2;26598:12;;26110:525;-1:-1;;;26110:525;26642:213;26760:2;26745:18;;26774:71;26749:9;26818:6;26774:71;;26862:324;27008:2;26993:18;;27022:71;26997:9;27066:6;27022:71;;;27104:72;27172:2;27161:9;27157:18;27148:6;27104:72;;27193:324;27339:2;27324:18;;27353:71;27328:9;27397:6;27353:71;;;27435:72;27503:2;27492:9;27488:18;27479:6;27435:72;;27524:519;27716:2;27701:18;;27730:71;27705:9;27774:6;27730:71;;;27812:72;27880:2;27869:9;27865:18;27856:6;27812:72;;;27932:9;27926:4;27922:20;27917:2;27906:9;27902:18;27895:48;27957:76;28028:4;28019:6;27957:76;;28050:796;28384:2;28398:47;;;28369:18;;28459:146;28369:18;28591:6;28459:146;;;28451:154;;28653:9;28647:4;28643:20;28638:2;28627:9;28623:18;28616:48;28678:158;28831:4;28822:6;28678:158;;28853:201;28965:2;28950:18;;28979:65;28954:9;29017:6;28979:65;;29061:213;29179:2;29164:18;;29193:71;29168:9;29237:6;29193:71;;29281:263;29424:2;29409:18;;29438:96;29413:9;29507:6;29438:96;;29551:301;29689:2;29703:47;;;29674:18;;29764:78;29674:18;29828:6;29764:78;;29859:407;30050:2;30064:47;;;30035:18;;30125:131;30035:18;30125:131;;30273:407;30464:2;30478:47;;;30449:18;;30539:131;30449:18;30539:131;;30687:407;30878:2;30892:47;;;30863:18;;30953:131;30863:18;30953:131;;31101:407;31292:2;31306:47;;;31277:18;;31367:131;31277:18;31367:131;;31515:407;31706:2;31720:47;;;31691:18;;31781:131;31691:18;31781:131;;31929:407;32120:2;32134:47;;;32105:18;;32195:131;32105:18;32195:131;;32343:407;32534:2;32548:47;;;32519:18;;32609:131;32519:18;32609:131;;32757:407;32948:2;32962:47;;;32933:18;;33023:131;32933:18;33023:131;;33391:472;33587:2;33572:18;;33601:71;33576:9;33645:6;33601:71;;;33720:9;33714:4;33710:20;33705:2;33694:9;33690:18;33683:48;33745:108;33848:4;33839:6;33745:108;;33870:807;34150:3;34135:19;;34165:71;34139:9;34209:6;34165:71;;;34247:72;34315:2;34304:9;34300:18;34291:6;34247:72;;;34367:9;34361:4;34357:20;34352:2;34341:9;34337:18;34330:48;34392:108;34495:4;34486:6;34392:108;;;34384:116;;34511:72;34579:2;34568:9;34564:18;34555:6;34511:72;;;34594:73;34662:3;34651:9;34647:19;34638:6;34594:73;;34684:256;34746:2;34740:9;34772:17;;;34847:18;34832:34;;34868:22;;;34829:62;34826:2;;;34904:1;34901;34894:12;34826:2;34920;34913:22;34724:216;;-1:-1;34724:216;34947:304;;35106:18;35098:6;35095:30;35092:2;;;35138:1;35135;35128:12;35092:2;-1:-1;35173:4;35161:17;;;35226:15;;35029:222;35258:317;;35397:18;35389:6;35386:30;35383:2;;;35429:1;35426;35419:12;35383:2;-1:-1;35560:4;35496;35473:17;;;;-1:-1;;35469:33;35550:15;;35320:255;35582:151;35706:4;35697:14;;35654:79;36100:137;36203:12;;36174:63;37347:178;37465:19;;;37514:4;37505:14;;37458:67;38762:91;;38824:24;38842:5;38824:24;;38966:85;39032:13;39025:21;;39008:43;39058:144;39130:66;39119:78;;39102:100;39209:144;39281:66;39270:78;;39253:100;39360:72;39422:5;39405:27;39439:138;39517:5;39523:49;39517:5;39523:49;;39584:152;39669:5;39675:56;39669:5;39675:56;;39896:109;39969:30;39958:42;;39941:64;40012:121;-1:-1;;;;;40074:54;;40057:76;40219:88;40291:10;40280:22;;40263:44;40314:171;;40418:62;40474:5;40418:62;;40632:138;;40725:40;40759:5;40725:40;;40777:152;;40877:47;40918:5;40877:47;;41090:145;41171:6;41166:3;41161;41148:30;-1:-1;41227:1;41209:16;;41202:27;41141:94;41244:268;41309:1;41316:101;41330:6;41327:1;41324:13;41316:101;;;41397:11;;;41391:18;41378:11;;;41371:39;41352:2;41345:10;41316:101;;;41432:6;41429:1;41426:13;41423:2;;;-1:-1;;41497:1;41479:16;;41472:27;41293:219;41520:95;;41584:26;41604:5;41863:89;41927:20;41941:5;41927:20;;41959:97;42047:2;42027:14;-1:-1;;42023:28;;42007:49;42064:94;42138:2;42134:14;;42106:52;42166:107;42251:1;42244:5;42241:12;42231:2;;42257:9;42280:114;42372:1;42365:5;42362:12;42352:2;;42378:9;42519:117;42588:24;42606:5;42588:24;;;42581:5;42578:35;42568:2;;42627:1;42624;42617:12;42783:111;42849:21;42864:5;42849:21;;42901:117;42970:24;42988:5;42970:24;;43025:117;43094:24;43112:5;43094:24;;43149:115;43217:23;43234:5;43217:23;",
|
|
339
339
|
"source": "/*\n\n Copyright 2021 Dolomite.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.7;\npragma experimental ABIEncoderV2;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/ownership/Ownable.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\n\nimport \"@uniswap/lib/contracts/libraries/Babylonian.sol\";\n\nimport \"../../protocol/interfaces/IExchangeWrapper.sol\";\nimport \"../../protocol/interfaces/IDolomiteMargin.sol\";\n\nimport \"../../protocol/lib/Account.sol\";\nimport \"../../protocol/lib/Actions.sol\";\nimport \"../../protocol/lib/Require.sol\";\nimport \"../../protocol/lib/Types.sol\";\n\nimport \"../lib/DolomiteAmmLibrary.sol\";\nimport \"../lib/TypedSignature.sol\";\n\nimport \"../interfaces/IDolomiteAmmFactory.sol\";\nimport \"../interfaces/IDolomiteAmmPair.sol\";\nimport \"../interfaces/IUniswapV2Router.sol\";\n\nimport \"../helpers/OnlyDolomiteMargin.sol\";\n\n\ncontract AmmRebalancerProxy is IExchangeWrapper, OnlyDolomiteMargin, Ownable {\n using SafeERC20 for IERC20;\n using SafeMath for uint;\n\n bytes32 public constant FILE = \"AmmRebalancerProxy\";\n\n address public DOLOMITE_AMM_FACTORY;\n mapping(address => bytes32) public ROUTER_TO_INIT_CODE_HASH_MAP;\n\n struct RebalanceParams {\n bytes dolomitePath;\n uint truePriceTokenA;\n uint truePriceTokenB;\n address otherRouter;\n bytes otherPath;\n }\n\n struct RebalanceCache {\n address dolomiteFactory;\n address[] dolomitePools;\n }\n\n event RouterInitCodeHashSet(address indexed router, bytes32 initCodeHash);\n\n // ============ Constructor ============\n\n constructor (\n address dolomiteMargin,\n address dolomiteAmmFactory,\n address[] memory routers,\n bytes32[] memory initCodeHashes\n )\n public\n OnlyDolomiteMargin(dolomiteMargin)\n {\n DOLOMITE_AMM_FACTORY = dolomiteAmmFactory;\n\n Require.that(\n routers.length == initCodeHashes.length,\n FILE,\n \"routers/initCodes invalid length\"\n );\n for (uint i = 0; i < routers.length; i++) {\n ROUTER_TO_INIT_CODE_HASH_MAP[routers[i]] = initCodeHashes[i];\n emit RouterInitCodeHashSet(routers[i], initCodeHashes[i]);\n }\n }\n\n function adminSetRouterInitCodeHashes(\n address[] calldata routers,\n bytes32[] calldata initCodeHashes\n )\n external\n onlyOwner {\n Require.that(\n routers.length == initCodeHashes.length,\n FILE,\n \"routers/initCodes invalid length\"\n );\n\n for (uint i = 0; i < routers.length; i++) {\n ROUTER_TO_INIT_CODE_HASH_MAP[routers[i]] = initCodeHashes[i];\n emit RouterInitCodeHashSet(routers[i], initCodeHashes[i]);\n }\n }\n\n function exchange(\n address,\n address receiver,\n address makerToken,\n address takerToken,\n uint256 requestedFillAmount,\n bytes calldata orderData\n )\n external\n onlyDolomiteMargin(msg.sender)\n returns (uint256) {\n (address router, uint amountOutMin, bytes memory rawPath) = abi.decode(orderData, (address, uint, bytes));\n address[] memory path = _decodeRawPath(rawPath);\n Require.that(\n path[0] == takerToken,\n FILE,\n \"path[0] not takerToken\"\n );\n Require.that(\n path[path.length - 1] == makerToken,\n FILE,\n \"path[last] not makerToken\"\n );\n\n _checkAllowanceAndApprove(takerToken, router, requestedFillAmount);\n\n uint[] memory amounts = IUniswapV2Router(router).swapExactTokensForTokens(\n requestedFillAmount,\n amountOutMin,\n path,\n address(this),\n block.timestamp + 1\n );\n\n _checkAllowanceAndApprove(makerToken, receiver, amounts[amounts.length - 1]);\n\n return amounts[amounts.length - 1];\n }\n\n function getExchangeCost(\n address makerToken,\n address takerToken,\n uint256 desiredMakerToken,\n bytes calldata orderData\n )\n external\n view\n returns (uint256) {\n (address router,, bytes memory rawPath) = abi.decode(orderData, (address, uint, bytes));\n address[] memory path = _decodeRawPath(rawPath);\n Require.that(\n path[0] == takerToken,\n FILE,\n \"path[0] not takerToken\"\n );\n Require.that(\n path[path.length - 1] == makerToken,\n FILE,\n \"path[last] not makerToken\"\n );\n\n return IUniswapV2Router(router).getAmountsIn(desiredMakerToken, path)[0];\n }\n\n function performRebalance(\n RebalanceParams memory params\n ) public {\n Require.that(\n params.dolomitePath.length == 40 && params.otherPath.length >= 40 && params.otherPath.length % 20 == 0,\n FILE,\n \"invalid path lengths\"\n );\n\n address[] memory dolomitePath = _decodeRawPath(params.dolomitePath);\n address[] memory otherPath = _decodeRawPath(params.otherPath);\n Require.that(\n dolomitePath[0] == otherPath[otherPath.length - 1] && dolomitePath[dolomitePath.length - 1] == otherPath[0],\n FILE,\n \"invalid path alignment\"\n );\n\n // solium-disable indentation\n RebalanceCache memory cache;\n {\n address dolomiteFactory = DOLOMITE_AMM_FACTORY;\n cache = RebalanceCache({\n dolomiteFactory: dolomiteFactory,\n dolomitePools: DolomiteAmmLibrary.getPools(dolomiteFactory, dolomitePath)\n });\n }\n // solium-enable indentation\n\n uint dolomiteAmountIn;\n // solium-disable indentation\n {\n (uint256 reserveA, uint256 reserveB) = DolomiteAmmLibrary.getReservesWei(\n cache.dolomiteFactory,\n dolomitePath[0],\n dolomitePath[1]\n );\n (bool isAToB, uint _dolomiteAmountIn) = _computeProfitMaximizingTrade(\n params.truePriceTokenA,\n params.truePriceTokenB,\n reserveA,\n reserveB\n );\n\n Require.that(\n isAToB,\n FILE,\n \"invalid aToB\"\n );\n\n dolomiteAmountIn = _dolomiteAmountIn;\n }\n // solium-enable indentation\n\n Account.Info[] memory accounts = new Account.Info[](2 + cache.dolomitePools.length);\n accounts[0] = Account.Info({\n owner : msg.sender,\n number : 0\n });\n accounts[1] = Account.Info({\n owner : msg.sender,\n number : 1\n });\n\n for (uint i = 0; i < cache.dolomitePools.length; i++) {\n accounts[2 + i] = Account.Info({\n owner : cache.dolomitePools[i],\n number : 0\n });\n }\n\n uint[] memory dolomiteMarketPath = _getMarketPathFromTokenPath(dolomitePath);\n\n // solium-disable indentation\n uint otherAmountIn;\n {\n // blocked off to prevent the \"stack too deep\" error\n bytes32 otherInitCodeHash = ROUTER_TO_INIT_CODE_HASH_MAP[params.otherRouter];\n Require.that(\n otherInitCodeHash != bytes32(0),\n FILE,\n \"router not recognized\"\n );\n\n // dolomiteAmountIn is the amountOut for the other trade\n // Require.that(false, FILE, \"printing results\", dolomiteAmountIn);\n otherAmountIn = DolomiteAmmLibrary.getAmountsIn(\n IUniswapV2Router(params.otherRouter).factory(),\n otherInitCodeHash,\n dolomiteAmountIn,\n otherPath\n )[0];\n }\n // solium-enable indentation\n\n // 1 action for transferring, 1 for selling via the other router, and trades are paths.length - 1\n Actions.ActionArgs[] memory actions = new Actions.ActionArgs[](2 + dolomitePath.length - 1);\n\n // trade from accountIndex=1 and transfer to 0, to ensure re-balances are down with flash-loaned funds\n // the dolomiteInputMarketId is the output market for the other trade and vice versa\n // solium-disable indentation\n {\n // done to prevent the \"stack too deep\" error\n uint otherAmountOut = dolomiteAmountIn;\n actions[0] = _encodeSell(\n 1,\n dolomiteMarketPath[dolomiteMarketPath.length - 1],\n dolomiteMarketPath[0],\n otherAmountIn,\n params.otherRouter,\n params.otherPath,\n otherAmountOut // this is the other trade's output amount\n );\n }\n // solium-enable indentation\n\n uint[] memory dolomiteAmountsOut = DolomiteAmmLibrary.getAmountsOutWei(\n cache.dolomiteFactory,\n dolomiteAmountIn,\n dolomitePath\n );\n Require.that(\n otherAmountIn <= dolomiteAmountsOut[dolomiteAmountsOut.length - 1],\n FILE,\n \"arb closed\"\n );\n\n for (uint i = 0; i < cache.dolomitePools.length; i++) {\n Require.that(\n accounts[i + 2].owner == cache.dolomitePools[i],\n FILE,\n \"invalid pool owner address\"\n );\n actions[i + 1] = _encodeTrade(\n 1,\n i + 2,\n dolomiteMarketPath[i],\n dolomiteMarketPath[i + 1],\n cache.dolomitePools[i],\n dolomiteAmountsOut[i],\n dolomiteAmountsOut[i + 1]\n );\n }\n actions[actions.length - 1] = _encodeTransferAll(\n 1,\n 0,\n dolomiteMarketPath[dolomiteMarketPath.length - 1]\n );\n\n DOLOMITE_MARGIN.operate(accounts, actions);\n }\n\n // ============ Internal Functions ============\n\n function _computeProfitMaximizingTrade(\n uint256 truePriceTokenA,\n uint256 truePriceTokenB,\n uint256 reserveA,\n uint256 reserveB\n )\n internal\n pure\n returns (bool isAToB, uint256 amountIn)\n {\n isAToB = reserveA.mul(truePriceTokenB).div(reserveB) < truePriceTokenA;\n\n uint256 invariant = reserveA.mul(reserveB);\n\n uint256 leftSide = Babylonian.sqrt(\n invariant.mul(isAToB ? truePriceTokenA : truePriceTokenB).mul(1000) /\n uint256(isAToB ? truePriceTokenB : truePriceTokenA).mul(997)\n );\n uint256 rightSide = (isAToB ? reserveA.mul(1000) : reserveB.mul(1000)) / 997;\n\n // compute the amount that must be sent to move the price to the profit-maximizing price\n amountIn = leftSide.sub(rightSide);\n }\n\n function _decodeRawPath(\n bytes memory rawPath\n ) internal pure returns (address[] memory) {\n Require.that(\n rawPath.length % 20 == 0 && rawPath.length >= 40,\n FILE,\n \"invalid path length\"\n );\n address[] memory path = new address[](rawPath.length / 20);\n for (uint i = 0; i < path.length; i++) {\n uint offset = 20 * i; // 20 bytes per address\n bytes20 token;\n // solium-disable-next-line\n assembly {\n token := mload(add(add(rawPath, 32), offset))\n }\n path[i] = address(token);\n }\n return path;\n }\n\n function _checkAllowanceAndApprove(\n address token,\n address spender,\n uint amount\n ) internal {\n if (IERC20(token).allowance(address(this), spender) < amount) {\n IERC20(token).safeApprove(spender, uint(- 1));\n }\n }\n\n function _encodeSell(\n uint fromAccountIndex,\n uint primaryMarketId,\n uint secondaryMarketId,\n uint amountInWei,\n address router,\n bytes memory path,\n uint amountOutWei\n ) internal view returns (Actions.ActionArgs memory) {\n return Actions.ActionArgs({\n actionType : Actions.ActionType.Sell,\n accountId : fromAccountIndex,\n // solium-disable-next-line arg-overflow\n amount : Types.AssetAmount(false, Types.AssetDenomination.Wei, Types.AssetReference.Delta, amountInWei),\n primaryMarketId : primaryMarketId,\n secondaryMarketId : secondaryMarketId,\n otherAddress : address(this),\n otherAccountId : uint(- 1),\n data : abi.encode(router, amountOutWei, path)\n });\n }\n\n function _encodeTrade(\n uint fromAccountIndex,\n uint toAccountIndex,\n uint primaryMarketId,\n uint secondaryMarketId,\n address traderAddress,\n uint amountInWei,\n uint amountOutWei\n ) internal pure returns (Actions.ActionArgs memory) {\n return Actions.ActionArgs({\n actionType : Actions.ActionType.Trade,\n accountId : fromAccountIndex,\n // solium-disable-next-line arg-overflow\n amount : Types.AssetAmount(true, Types.AssetDenomination.Wei, Types.AssetReference.Delta, amountInWei),\n primaryMarketId : primaryMarketId,\n secondaryMarketId : secondaryMarketId,\n otherAddress : traderAddress,\n otherAccountId : toAccountIndex,\n data : abi.encode(amountOutWei)\n });\n }\n\n function _encodeTransferAll(\n uint fromAccountIndex,\n uint toAccountIndex,\n uint marketId\n ) internal pure returns (Actions.ActionArgs memory) {\n return Actions.ActionArgs({\n actionType : Actions.ActionType.Transfer,\n accountId : fromAccountIndex,\n // solium-disable-next-line arg-overflow\n amount : Types.AssetAmount(true, Types.AssetDenomination.Wei, Types.AssetReference.Target, 0),\n primaryMarketId : marketId,\n secondaryMarketId : uint(- 1),\n otherAddress : address(0),\n otherAccountId : toAccountIndex,\n data : bytes(\"\")\n });\n }\n\n function _getMarketPathFromTokenPath(\n address[] memory path\n ) internal view returns (uint[] memory) {\n IDolomiteMargin dolomiteMargin = DOLOMITE_MARGIN;\n uint[] memory marketPath = new uint[](path.length);\n for (uint i = 0; i < path.length; i++) {\n marketPath[i] = dolomiteMargin.getMarketIdByTokenAddress(path[i]);\n }\n return marketPath;\n }\n\n}\n",
|
|
340
|
-
"sourcePath": "/
|
|
340
|
+
"sourcePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/AmmRebalancerProxy.sol",
|
|
341
341
|
"ast": {
|
|
342
|
-
"absolutePath": "/
|
|
342
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/AmmRebalancerProxy.sol",
|
|
343
343
|
"exportedSymbols": {
|
|
344
344
|
"AmmRebalancerProxy": [
|
|
345
345
|
9445
|
|
@@ -435,7 +435,7 @@
|
|
|
435
435
|
"unitAlias": ""
|
|
436
436
|
},
|
|
437
437
|
{
|
|
438
|
-
"absolutePath": "/
|
|
438
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IExchangeWrapper.sol",
|
|
439
439
|
"file": "../../protocol/interfaces/IExchangeWrapper.sol",
|
|
440
440
|
"id": 8277,
|
|
441
441
|
"nodeType": "ImportDirective",
|
|
@@ -446,7 +446,7 @@
|
|
|
446
446
|
"unitAlias": ""
|
|
447
447
|
},
|
|
448
448
|
{
|
|
449
|
-
"absolutePath": "/
|
|
449
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol",
|
|
450
450
|
"file": "../../protocol/interfaces/IDolomiteMargin.sol",
|
|
451
451
|
"id": 8278,
|
|
452
452
|
"nodeType": "ImportDirective",
|
|
@@ -457,7 +457,7 @@
|
|
|
457
457
|
"unitAlias": ""
|
|
458
458
|
},
|
|
459
459
|
{
|
|
460
|
-
"absolutePath": "/
|
|
460
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
|
|
461
461
|
"file": "../../protocol/lib/Account.sol",
|
|
462
462
|
"id": 8279,
|
|
463
463
|
"nodeType": "ImportDirective",
|
|
@@ -468,7 +468,7 @@
|
|
|
468
468
|
"unitAlias": ""
|
|
469
469
|
},
|
|
470
470
|
{
|
|
471
|
-
"absolutePath": "/
|
|
471
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol",
|
|
472
472
|
"file": "../../protocol/lib/Actions.sol",
|
|
473
473
|
"id": 8280,
|
|
474
474
|
"nodeType": "ImportDirective",
|
|
@@ -479,7 +479,7 @@
|
|
|
479
479
|
"unitAlias": ""
|
|
480
480
|
},
|
|
481
481
|
{
|
|
482
|
-
"absolutePath": "/
|
|
482
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol",
|
|
483
483
|
"file": "../../protocol/lib/Require.sol",
|
|
484
484
|
"id": 8281,
|
|
485
485
|
"nodeType": "ImportDirective",
|
|
@@ -490,7 +490,7 @@
|
|
|
490
490
|
"unitAlias": ""
|
|
491
491
|
},
|
|
492
492
|
{
|
|
493
|
-
"absolutePath": "/
|
|
493
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
|
|
494
494
|
"file": "../../protocol/lib/Types.sol",
|
|
495
495
|
"id": 8282,
|
|
496
496
|
"nodeType": "ImportDirective",
|
|
@@ -501,7 +501,7 @@
|
|
|
501
501
|
"unitAlias": ""
|
|
502
502
|
},
|
|
503
503
|
{
|
|
504
|
-
"absolutePath": "/
|
|
504
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/DolomiteAmmLibrary.sol",
|
|
505
505
|
"file": "../lib/DolomiteAmmLibrary.sol",
|
|
506
506
|
"id": 8283,
|
|
507
507
|
"nodeType": "ImportDirective",
|
|
@@ -512,7 +512,7 @@
|
|
|
512
512
|
"unitAlias": ""
|
|
513
513
|
},
|
|
514
514
|
{
|
|
515
|
-
"absolutePath": "/
|
|
515
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/TypedSignature.sol",
|
|
516
516
|
"file": "../lib/TypedSignature.sol",
|
|
517
517
|
"id": 8284,
|
|
518
518
|
"nodeType": "ImportDirective",
|
|
@@ -523,7 +523,7 @@
|
|
|
523
523
|
"unitAlias": ""
|
|
524
524
|
},
|
|
525
525
|
{
|
|
526
|
-
"absolutePath": "/
|
|
526
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmFactory.sol",
|
|
527
527
|
"file": "../interfaces/IDolomiteAmmFactory.sol",
|
|
528
528
|
"id": 8285,
|
|
529
529
|
"nodeType": "ImportDirective",
|
|
@@ -534,7 +534,7 @@
|
|
|
534
534
|
"unitAlias": ""
|
|
535
535
|
},
|
|
536
536
|
{
|
|
537
|
-
"absolutePath": "/
|
|
537
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmPair.sol",
|
|
538
538
|
"file": "../interfaces/IDolomiteAmmPair.sol",
|
|
539
539
|
"id": 8286,
|
|
540
540
|
"nodeType": "ImportDirective",
|
|
@@ -545,7 +545,7 @@
|
|
|
545
545
|
"unitAlias": ""
|
|
546
546
|
},
|
|
547
547
|
{
|
|
548
|
-
"absolutePath": "/
|
|
548
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IUniswapV2Router.sol",
|
|
549
549
|
"file": "../interfaces/IUniswapV2Router.sol",
|
|
550
550
|
"id": 8287,
|
|
551
551
|
"nodeType": "ImportDirective",
|
|
@@ -556,7 +556,7 @@
|
|
|
556
556
|
"unitAlias": ""
|
|
557
557
|
},
|
|
558
558
|
{
|
|
559
|
-
"absolutePath": "/
|
|
559
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol",
|
|
560
560
|
"file": "../helpers/OnlyDolomiteMargin.sol",
|
|
561
561
|
"id": 8288,
|
|
562
562
|
"nodeType": "ImportDirective",
|
|
@@ -16889,7 +16889,7 @@
|
|
|
16889
16889
|
"src": "595:14544:27"
|
|
16890
16890
|
},
|
|
16891
16891
|
"legacyAST": {
|
|
16892
|
-
"absolutePath": "/
|
|
16892
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/AmmRebalancerProxy.sol",
|
|
16893
16893
|
"exportedSymbols": {
|
|
16894
16894
|
"AmmRebalancerProxy": [
|
|
16895
16895
|
9445
|
|
@@ -16985,7 +16985,7 @@
|
|
|
16985
16985
|
"unitAlias": ""
|
|
16986
16986
|
},
|
|
16987
16987
|
{
|
|
16988
|
-
"absolutePath": "/
|
|
16988
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IExchangeWrapper.sol",
|
|
16989
16989
|
"file": "../../protocol/interfaces/IExchangeWrapper.sol",
|
|
16990
16990
|
"id": 8277,
|
|
16991
16991
|
"nodeType": "ImportDirective",
|
|
@@ -16996,7 +16996,7 @@
|
|
|
16996
16996
|
"unitAlias": ""
|
|
16997
16997
|
},
|
|
16998
16998
|
{
|
|
16999
|
-
"absolutePath": "/
|
|
16999
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol",
|
|
17000
17000
|
"file": "../../protocol/interfaces/IDolomiteMargin.sol",
|
|
17001
17001
|
"id": 8278,
|
|
17002
17002
|
"nodeType": "ImportDirective",
|
|
@@ -17007,7 +17007,7 @@
|
|
|
17007
17007
|
"unitAlias": ""
|
|
17008
17008
|
},
|
|
17009
17009
|
{
|
|
17010
|
-
"absolutePath": "/
|
|
17010
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
|
|
17011
17011
|
"file": "../../protocol/lib/Account.sol",
|
|
17012
17012
|
"id": 8279,
|
|
17013
17013
|
"nodeType": "ImportDirective",
|
|
@@ -17018,7 +17018,7 @@
|
|
|
17018
17018
|
"unitAlias": ""
|
|
17019
17019
|
},
|
|
17020
17020
|
{
|
|
17021
|
-
"absolutePath": "/
|
|
17021
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol",
|
|
17022
17022
|
"file": "../../protocol/lib/Actions.sol",
|
|
17023
17023
|
"id": 8280,
|
|
17024
17024
|
"nodeType": "ImportDirective",
|
|
@@ -17029,7 +17029,7 @@
|
|
|
17029
17029
|
"unitAlias": ""
|
|
17030
17030
|
},
|
|
17031
17031
|
{
|
|
17032
|
-
"absolutePath": "/
|
|
17032
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol",
|
|
17033
17033
|
"file": "../../protocol/lib/Require.sol",
|
|
17034
17034
|
"id": 8281,
|
|
17035
17035
|
"nodeType": "ImportDirective",
|
|
@@ -17040,7 +17040,7 @@
|
|
|
17040
17040
|
"unitAlias": ""
|
|
17041
17041
|
},
|
|
17042
17042
|
{
|
|
17043
|
-
"absolutePath": "/
|
|
17043
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
|
|
17044
17044
|
"file": "../../protocol/lib/Types.sol",
|
|
17045
17045
|
"id": 8282,
|
|
17046
17046
|
"nodeType": "ImportDirective",
|
|
@@ -17051,7 +17051,7 @@
|
|
|
17051
17051
|
"unitAlias": ""
|
|
17052
17052
|
},
|
|
17053
17053
|
{
|
|
17054
|
-
"absolutePath": "/
|
|
17054
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/DolomiteAmmLibrary.sol",
|
|
17055
17055
|
"file": "../lib/DolomiteAmmLibrary.sol",
|
|
17056
17056
|
"id": 8283,
|
|
17057
17057
|
"nodeType": "ImportDirective",
|
|
@@ -17062,7 +17062,7 @@
|
|
|
17062
17062
|
"unitAlias": ""
|
|
17063
17063
|
},
|
|
17064
17064
|
{
|
|
17065
|
-
"absolutePath": "/
|
|
17065
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/TypedSignature.sol",
|
|
17066
17066
|
"file": "../lib/TypedSignature.sol",
|
|
17067
17067
|
"id": 8284,
|
|
17068
17068
|
"nodeType": "ImportDirective",
|
|
@@ -17073,7 +17073,7 @@
|
|
|
17073
17073
|
"unitAlias": ""
|
|
17074
17074
|
},
|
|
17075
17075
|
{
|
|
17076
|
-
"absolutePath": "/
|
|
17076
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmFactory.sol",
|
|
17077
17077
|
"file": "../interfaces/IDolomiteAmmFactory.sol",
|
|
17078
17078
|
"id": 8285,
|
|
17079
17079
|
"nodeType": "ImportDirective",
|
|
@@ -17084,7 +17084,7 @@
|
|
|
17084
17084
|
"unitAlias": ""
|
|
17085
17085
|
},
|
|
17086
17086
|
{
|
|
17087
|
-
"absolutePath": "/
|
|
17087
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmPair.sol",
|
|
17088
17088
|
"file": "../interfaces/IDolomiteAmmPair.sol",
|
|
17089
17089
|
"id": 8286,
|
|
17090
17090
|
"nodeType": "ImportDirective",
|
|
@@ -17095,7 +17095,7 @@
|
|
|
17095
17095
|
"unitAlias": ""
|
|
17096
17096
|
},
|
|
17097
17097
|
{
|
|
17098
|
-
"absolutePath": "/
|
|
17098
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IUniswapV2Router.sol",
|
|
17099
17099
|
"file": "../interfaces/IUniswapV2Router.sol",
|
|
17100
17100
|
"id": 8287,
|
|
17101
17101
|
"nodeType": "ImportDirective",
|
|
@@ -17106,7 +17106,7 @@
|
|
|
17106
17106
|
"unitAlias": ""
|
|
17107
17107
|
},
|
|
17108
17108
|
{
|
|
17109
|
-
"absolutePath": "/
|
|
17109
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol",
|
|
17110
17110
|
"file": "../helpers/OnlyDolomiteMargin.sol",
|
|
17111
17111
|
"id": 8288,
|
|
17112
17112
|
"nodeType": "ImportDirective",
|
|
@@ -33486,56 +33486,11 @@
|
|
|
33486
33486
|
},
|
|
33487
33487
|
"links": {},
|
|
33488
33488
|
"address": "0xFcCeD5E997E7fb1D0594518D3eD57245bB8ed17E",
|
|
33489
|
-
"transactionHash": "
|
|
33490
|
-
},
|
|
33491
|
-
"80001": {
|
|
33492
|
-
"events": {
|
|
33493
|
-
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
|
|
33494
|
-
"anonymous": false,
|
|
33495
|
-
"inputs": [
|
|
33496
|
-
{
|
|
33497
|
-
"indexed": true,
|
|
33498
|
-
"internalType": "address",
|
|
33499
|
-
"name": "previousOwner",
|
|
33500
|
-
"type": "address"
|
|
33501
|
-
},
|
|
33502
|
-
{
|
|
33503
|
-
"indexed": true,
|
|
33504
|
-
"internalType": "address",
|
|
33505
|
-
"name": "newOwner",
|
|
33506
|
-
"type": "address"
|
|
33507
|
-
}
|
|
33508
|
-
],
|
|
33509
|
-
"name": "OwnershipTransferred",
|
|
33510
|
-
"type": "event"
|
|
33511
|
-
},
|
|
33512
|
-
"0x8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a": {
|
|
33513
|
-
"anonymous": false,
|
|
33514
|
-
"inputs": [
|
|
33515
|
-
{
|
|
33516
|
-
"indexed": true,
|
|
33517
|
-
"internalType": "address",
|
|
33518
|
-
"name": "router",
|
|
33519
|
-
"type": "address"
|
|
33520
|
-
},
|
|
33521
|
-
{
|
|
33522
|
-
"indexed": false,
|
|
33523
|
-
"internalType": "bytes32",
|
|
33524
|
-
"name": "initCodeHash",
|
|
33525
|
-
"type": "bytes32"
|
|
33526
|
-
}
|
|
33527
|
-
],
|
|
33528
|
-
"name": "RouterInitCodeHashSet",
|
|
33529
|
-
"type": "event"
|
|
33530
|
-
}
|
|
33531
|
-
},
|
|
33532
|
-
"links": {},
|
|
33533
|
-
"address": "0xB3883b684b179A2B7a7B0299e463D05f2ed7A0c5",
|
|
33534
|
-
"transactionHash": "0x09d95debc2a0e70ed96cbb6805c38b813c00e8d930bede4a74e11a402ff5c44c"
|
|
33489
|
+
"transactionHash": "0x5573fa8e8a4ccfc51f92c6f67855c3c7fb06ffe8619fa399c5609dac9a7b0cf1"
|
|
33535
33490
|
}
|
|
33536
33491
|
},
|
|
33537
33492
|
"schemaVersion": "3.0.23",
|
|
33538
|
-
"updatedAt": "2022-01-
|
|
33493
|
+
"updatedAt": "2022-01-29T00:31:29.435Z",
|
|
33539
33494
|
"devdoc": {
|
|
33540
33495
|
"methods": {
|
|
33541
33496
|
"isOwner()": {
|