@aztec/l1-artifacts 0.63.1 → 0.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/CoinIssuerBytecode.d.ts +1 -1
- package/dest/CoinIssuerBytecode.d.ts.map +1 -1
- package/dest/CoinIssuerBytecode.js +2 -2
- package/dest/FeeJuicePortalAbi.d.ts +0 -20
- package/dest/FeeJuicePortalAbi.d.ts.map +1 -1
- package/dest/FeeJuicePortalAbi.js +1 -28
- package/dest/FeeJuicePortalBytecode.d.ts +1 -1
- package/dest/FeeJuicePortalBytecode.d.ts.map +1 -1
- package/dest/FeeJuicePortalBytecode.js +2 -2
- package/dest/GovernanceAbi.d.ts +0 -24
- package/dest/GovernanceAbi.d.ts.map +1 -1
- package/dest/GovernanceAbi.js +1 -33
- package/dest/GovernanceBytecode.d.ts +1 -1
- package/dest/GovernanceBytecode.d.ts.map +1 -1
- package/dest/GovernanceBytecode.js +2 -2
- package/dest/GovernanceProposerBytecode.d.ts +1 -1
- package/dest/GovernanceProposerBytecode.d.ts.map +1 -1
- package/dest/GovernanceProposerBytecode.js +2 -2
- package/dest/IERC20Abi.d.ts +33 -3
- package/dest/IERC20Abi.d.ts.map +1 -1
- package/dest/IERC20Abi.js +43 -4
- package/dest/InboxBytecode.d.ts +1 -1
- package/dest/InboxBytecode.d.ts.map +1 -1
- package/dest/InboxBytecode.js +2 -2
- package/dest/MockVerifierBytecode.d.ts +1 -1
- package/dest/MockVerifierBytecode.d.ts.map +1 -1
- package/dest/MockVerifierBytecode.js +2 -2
- package/dest/NewGovernanceProposerPayloadBytecode.d.ts +1 -1
- package/dest/NewGovernanceProposerPayloadBytecode.d.ts.map +1 -1
- package/dest/NewGovernanceProposerPayloadBytecode.js +2 -2
- package/dest/OutboxBytecode.d.ts +1 -1
- package/dest/OutboxBytecode.d.ts.map +1 -1
- package/dest/OutboxBytecode.js +2 -2
- package/dest/ProofCommitmentEscrowAbi.d.ts +0 -20
- package/dest/ProofCommitmentEscrowAbi.d.ts.map +1 -1
- package/dest/ProofCommitmentEscrowAbi.js +1 -28
- package/dest/ProofCommitmentEscrowBytecode.d.ts +1 -1
- package/dest/ProofCommitmentEscrowBytecode.d.ts.map +1 -1
- package/dest/ProofCommitmentEscrowBytecode.js +2 -2
- package/dest/RegistryBytecode.d.ts +1 -1
- package/dest/RegistryBytecode.d.ts.map +1 -1
- package/dest/RegistryBytecode.js +2 -2
- package/dest/RewardDistributorAbi.d.ts +0 -20
- package/dest/RewardDistributorAbi.d.ts.map +1 -1
- package/dest/RewardDistributorAbi.js +1 -28
- package/dest/RewardDistributorBytecode.d.ts +1 -1
- package/dest/RewardDistributorBytecode.d.ts.map +1 -1
- package/dest/RewardDistributorBytecode.js +2 -2
- package/dest/RollupAbi.d.ts +40 -54
- package/dest/RollupAbi.d.ts.map +1 -1
- package/dest/RollupAbi.js +51 -69
- package/dest/RollupBytecode.d.ts +3 -3
- package/dest/RollupBytecode.d.ts.map +1 -1
- package/dest/RollupBytecode.js +4 -4
- package/dest/TestERC20Abi.d.ts +0 -52
- package/dest/TestERC20Abi.d.ts.map +1 -1
- package/dest/TestERC20Abi.js +1 -70
- package/dest/TestERC20Bytecode.d.ts +1 -1
- package/dest/TestERC20Bytecode.d.ts.map +1 -1
- package/dest/TestERC20Bytecode.js +2 -2
- package/dest/TokenPortalAbi.d.ts +0 -20
- package/dest/TokenPortalAbi.d.ts.map +1 -1
- package/dest/TokenPortalAbi.js +1 -28
- package/dest/TokenPortalBytecode.d.ts +1 -1
- package/dest/TokenPortalBytecode.d.ts.map +1 -1
- package/dest/TokenPortalBytecode.js +2 -2
- package/dest/TxsDecoderBytecode.d.ts +1 -1
- package/dest/TxsDecoderBytecode.d.ts.map +1 -1
- package/dest/TxsDecoderBytecode.js +2 -2
- package/dest/UniswapPortalBytecode.d.ts +1 -1
- package/dest/UniswapPortalBytecode.d.ts.map +1 -1
- package/dest/UniswapPortalBytecode.js +2 -2
- package/generated/CoinIssuerBytecode.ts +1 -1
- package/generated/FeeJuicePortalAbi.ts +0 -27
- package/generated/FeeJuicePortalBytecode.ts +1 -1
- package/generated/GovernanceAbi.ts +0 -32
- package/generated/GovernanceBytecode.ts +1 -1
- package/generated/GovernanceProposerBytecode.ts +1 -1
- package/generated/IERC20Abi.ts +42 -3
- package/generated/InboxBytecode.ts +1 -1
- package/generated/MockVerifierBytecode.ts +1 -1
- package/generated/NewGovernanceProposerPayloadBytecode.ts +1 -1
- package/generated/OutboxBytecode.ts +1 -1
- package/generated/ProofCommitmentEscrowAbi.ts +0 -27
- package/generated/ProofCommitmentEscrowBytecode.ts +1 -1
- package/generated/RegistryBytecode.ts +1 -1
- package/generated/RewardDistributorAbi.ts +0 -27
- package/generated/RewardDistributorBytecode.ts +1 -1
- package/generated/RollupAbi.ts +50 -68
- package/generated/RollupBytecode.ts +3 -3
- package/generated/TestERC20Abi.ts +0 -69
- package/generated/TestERC20Bytecode.ts +1 -1
- package/generated/TokenPortalAbi.ts +0 -27
- package/generated/TokenPortalBytecode.ts +1 -1
- package/generated/TxsDecoderBytecode.ts +1 -1
- package/generated/UniswapPortalBytecode.ts +1 -1
- package/package.json +1 -1
package/generated/RollupAbi.ts
CHANGED
|
@@ -941,24 +941,31 @@ export const RollupAbi = [
|
|
|
941
941
|
"name": "propose",
|
|
942
942
|
"inputs": [
|
|
943
943
|
{
|
|
944
|
-
"name": "
|
|
945
|
-
"type": "
|
|
946
|
-
"internalType": "
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
944
|
+
"name": "_args",
|
|
945
|
+
"type": "tuple",
|
|
946
|
+
"internalType": "struct ProposeArgs",
|
|
947
|
+
"components": [
|
|
948
|
+
{
|
|
949
|
+
"name": "archive",
|
|
950
|
+
"type": "bytes32",
|
|
951
|
+
"internalType": "bytes32"
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"name": "blockHash",
|
|
955
|
+
"type": "bytes32",
|
|
956
|
+
"internalType": "bytes32"
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
"name": "header",
|
|
960
|
+
"type": "bytes",
|
|
961
|
+
"internalType": "bytes"
|
|
962
|
+
},
|
|
963
|
+
{
|
|
964
|
+
"name": "txHashes",
|
|
965
|
+
"type": "bytes32[]",
|
|
966
|
+
"internalType": "bytes32[]"
|
|
967
|
+
}
|
|
968
|
+
]
|
|
962
969
|
},
|
|
963
970
|
{
|
|
964
971
|
"name": "_signatures",
|
|
@@ -1001,24 +1008,31 @@ export const RollupAbi = [
|
|
|
1001
1008
|
"name": "proposeAndClaim",
|
|
1002
1009
|
"inputs": [
|
|
1003
1010
|
{
|
|
1004
|
-
"name": "
|
|
1005
|
-
"type": "
|
|
1006
|
-
"internalType": "
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1011
|
+
"name": "_args",
|
|
1012
|
+
"type": "tuple",
|
|
1013
|
+
"internalType": "struct ProposeArgs",
|
|
1014
|
+
"components": [
|
|
1015
|
+
{
|
|
1016
|
+
"name": "archive",
|
|
1017
|
+
"type": "bytes32",
|
|
1018
|
+
"internalType": "bytes32"
|
|
1019
|
+
},
|
|
1020
|
+
{
|
|
1021
|
+
"name": "blockHash",
|
|
1022
|
+
"type": "bytes32",
|
|
1023
|
+
"internalType": "bytes32"
|
|
1024
|
+
},
|
|
1025
|
+
{
|
|
1026
|
+
"name": "header",
|
|
1027
|
+
"type": "bytes",
|
|
1028
|
+
"internalType": "bytes"
|
|
1029
|
+
},
|
|
1030
|
+
{
|
|
1031
|
+
"name": "txHashes",
|
|
1032
|
+
"type": "bytes32[]",
|
|
1033
|
+
"internalType": "bytes32[]"
|
|
1034
|
+
}
|
|
1035
|
+
]
|
|
1022
1036
|
},
|
|
1023
1037
|
{
|
|
1024
1038
|
"name": "_signatures",
|
|
@@ -1658,33 +1672,6 @@ export const RollupAbi = [
|
|
|
1658
1672
|
],
|
|
1659
1673
|
"anonymous": false
|
|
1660
1674
|
},
|
|
1661
|
-
{
|
|
1662
|
-
"type": "error",
|
|
1663
|
-
"name": "AddressEmptyCode",
|
|
1664
|
-
"inputs": [
|
|
1665
|
-
{
|
|
1666
|
-
"name": "target",
|
|
1667
|
-
"type": "address",
|
|
1668
|
-
"internalType": "address"
|
|
1669
|
-
}
|
|
1670
|
-
]
|
|
1671
|
-
},
|
|
1672
|
-
{
|
|
1673
|
-
"type": "error",
|
|
1674
|
-
"name": "AddressInsufficientBalance",
|
|
1675
|
-
"inputs": [
|
|
1676
|
-
{
|
|
1677
|
-
"name": "account",
|
|
1678
|
-
"type": "address",
|
|
1679
|
-
"internalType": "address"
|
|
1680
|
-
}
|
|
1681
|
-
]
|
|
1682
|
-
},
|
|
1683
|
-
{
|
|
1684
|
-
"type": "error",
|
|
1685
|
-
"name": "FailedInnerCall",
|
|
1686
|
-
"inputs": []
|
|
1687
|
-
},
|
|
1688
1675
|
{
|
|
1689
1676
|
"type": "error",
|
|
1690
1677
|
"name": "HeaderLib__InvalidHeaderSize",
|
|
@@ -1770,11 +1757,6 @@ export const RollupAbi = [
|
|
|
1770
1757
|
}
|
|
1771
1758
|
]
|
|
1772
1759
|
},
|
|
1773
|
-
{
|
|
1774
|
-
"type": "error",
|
|
1775
|
-
"name": "MathOverflowedMulDiv",
|
|
1776
|
-
"inputs": []
|
|
1777
|
-
},
|
|
1778
1760
|
{
|
|
1779
1761
|
"type": "error",
|
|
1780
1762
|
"name": "OwnableInvalidOwner",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Rollup bytecode.
|
|
3
3
|
*/
|
|
4
|
-
export const RollupBytecode = "0x61030060405234801561001157600080fd5b5060405161918738038061918783398101604081905261003091610e88565b828160000151826020015183604001518282856040518060400160405280600c81526020016b0417a74656320526f6c6c75760a41b815250604051806040016040528060018152602001603160f81b81525061009660008361043960201b90919060201c565b610120526100a5816001610439565b61014052815160208084019190912060e052815190820120610100524660a05261013260e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526101448161046c565b5050426101c0525061016092909252610180526101a0525060405161016890610d1a565b604051809103906000f080158015610184573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b039283161790558781166102a08190529087166102c052604080516362eb326360e11b8152905163c5d664c6916004808201926020929091908290030181865afa1580156101ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102109190610fa3565b6001600160a01b03166102e0819052815160208301516040513092919061023690610d27565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103906000f080158015610275573d6000803e3d6000fd5b506001600160a01b031661026052604051309060049061029490610d34565b6001600160a01b0390921682526020820152604001604051809103906000f0801580156102c5573d6000803e3d6000fd5b506001600160a01b03166102205260405130906102e190610d41565b6001600160a01b039091168152602001604051809103906000f08015801561030d573d6000803e3d6000fd5b506001600160a01b0316610240526010859055601184905560016102805243610200526060808201516101e0526040805191820181527f2a05cb8aeefe9b9797f90650eae072f5ab7437807e62f9724ce1900467779860825260006020838101828152928401828152828052600f90915292517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3755590517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3765590517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec377555b82518110156104245761041c83828151811061040957610409610fc0565b60200260200101516104be60201b60201c565b6001016103eb565b5061042d6104cd565b50505050505050611258565b60006020835110156104555761044e8361053b565b9050610466565b81610460848261105e565b5060ff90505b92915050565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6104c9600382610582565b5050565b60006104d761059e565b600081815260056020526040812060018101549293509190036104c9576104fd826105ae565b600182015561050b8261061a565b60068190556002820155600181015461052390610656565b8051610536918391602090910190610d4e565b505050565b600080829050601f8151111561056f578260405163305a27a960e01b8152600401610566919061111c565b60405180910390fd5b805161057a8261116a565b179392505050565b6000610597836001600160a01b03841661076f565b9392505050565b60006105a9426107be565b905090565b6000816000036105c15750600019919050565b60008281526005602052604090206001015480156105df5792915050565b600560006105ee8560016107f2565b8152602001908152602001600020600201549050806000146106105792915050565b5050600654919050565b60008144604051602001610638929190918252602082015260400190565b60408051601f19818403018152919052805160209091012092915050565b6060600061066460036107fe565b905080600003610684575050604080516000815260208101909152919050565b6101a0518111610698576105976003610808565b60006106ae6101a051838661081560201b60201c565b905060006101a0516001600160401b038111156106cd576106cd610de0565b6040519080825280602002602001820160405280156106f6578160200160208202803683370190505b50905060005b6101a0518110156107665761073483828151811061071c5761071c610fc0565b6020026020010151600361089e60201b90919060201c565b82828151811061074657610746610fc0565b6001600160a01b03909216602092830291909101909101526001016106fc565b50949350505050565b60008181526001830160205260408120546107b657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610466565b506000610466565b60006107cc826101c0511190565b6107ea576107e56107e0836101c0516107f2565b6108aa565b610466565b600092915050565b600061059782846111a4565b6000610466825490565b60606000610597836108c8565b60606000846001600160401b0381111561083157610831610de0565b60405190808252806020026020018201604052801561085a578160200160208202803683370190505b50905060005b85811015610766576000610875828787610924565b90508083838151811061088a5761088a610fc0565b602090810291909101015250600101610860565b600061059783836109ba565b600061016051610180516108be91906111b7565b61046690836111e4565b60608160000180548060200260200160405190810160405280929190818152602001828054801561091857602002820191906000526020600020905b815481526020019060010190808311610904575b50505050509050919050565b600083838082106109515760405163a12fc55960e01b815260048101929092526024820152604401610566565b506000905061095f846109e4565b905084815b80156109b05760006109818661097b6001856111a4565b89610bb3565b905061099a8682856109946001876111a4565b8b610c0a565b92505080806109a8906111f8565b915050610964565b5095945050505050565b60008260000182815481106109d1576109d1610fc0565b9060005260206000200154905092915050565b6000610ba882604080517ff8f9cbfae6cc78fbefe7cdc3a1793dfcf4f0e8bbd8cec470b6a28a7a5a3e1efd81527ff5ecf1b3e9debc68e1d9cfabc5997135bfb7a7a3938b7b606b5b4b3f2f1f0ffe60208201527ff6e4ed9ff2d6b458eadcdf97bd91692de2d4da8fd2d0ac50c6ae9a8272523616818301527fc8c0b887b0a8a4489c948c7f847c6125746c645c544c444038302820181008ff60608201527ff7cae577eec2a03cf3bad76fb589591debb2dd67e0aa9834bea6925f6a4a2e0e60808201527fe39ed557db96902cd38ed14fad815115c786af479b7e8324736353433727170760a08201527fc976c13bb96e881cb166a933a55e490d9d56952b8d4e801485467d236242260660c08201527f753a6d1b65325d0c552a4d1345224105391a310b29122104190a11030902010060e0820152610100808201909252600160f81b6001600160801b68010000000000000000640100000000620100006010600460026000198c019081041790810417908104178881041790810417908104179081041790810417017e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff0281900460ff039091015104600160ff1b909211020190565b6104669060046111b7565b6000818484604051602001610bdf92919091825260f81b6001600160f81b031916602082015260210190565b6040516020818303038152906040528051906020012060001c610c02919061120f565b949350505050565b6000808285610c198289611223565b610c2391906111a4565b610c2d919061120f565b90506000818611610c3e5781610c40565b855b905060008886610c52610100856111e4565b604051602001610c8f9392919092835260f89190911b6001600160f81b031916602083015260e01b6001600160e01b031916602182015260250190565b604051602081830303815290604052805190602001209050600081600861010085610cba919061120f565b610cc491906111e4565b60208110610cd457610cd4610fc0565b1a905060006002610ce660088661120f565b8360ff16901c610cf69190611236565b90508060ff16600114610d095788610d0b565b845b9b9a5050505050505050505050565b6101848061699083390190565b610bb780616b1483390190565b611010806176cb83390190565b610aac806186db83390190565b828054828255906000526020600020908101928215610da3579160200282015b82811115610da357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610d6e565b50610daf929150610db3565b5090565b5b80821115610daf5760008155600101610db4565b6001600160a01b0381168114610ddd57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610e1e57610e1e610de0565b604052919050565b600060808284031215610e3857600080fd5b604051608081016001600160401b0381118282101715610e5a57610e5a610de0565b6040908152835182526020808501519083015283810151908201526060928301519281019290925250919050565b6000806000806000806000610140888a031215610ea457600080fd5b8751610eaf81610dc8565b6020890151909750610ec081610dc8565b604089015160608a015160808b01519298509096509450610ee081610dc8565b60a08901519093506001600160401b03811115610efc57600080fd5b8801601f81018a13610f0d57600080fd5b80516001600160401b03811115610f2657610f26610de0565b8060051b610f3660208201610df6565b9182526020818401810192908101908d841115610f5257600080fd5b6020850194505b83851015610f805784519250610f6e83610dc8565b82825260209485019490910190610f59565b8096505050505050610f958960c08a01610e26565b905092959891949750929550565b600060208284031215610fb557600080fd5b815161059781610dc8565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610fea57607f821691505b60208210810361100a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561053657806000526020600020601f840160051c810160208510156110375750805b601f840160051c820191505b818110156110575760008155600101611043565b5050505050565b81516001600160401b0381111561107757611077610de0565b61108b816110858454610fd6565b84611010565b6020601f8211600181146110bf57600083156110a75750848201515b600019600385901b1c1916600184901b178455611057565b600084815260208120601f198516915b828110156110ef57878501518255602094850194600190920191016110cf565b508482101561110d5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000825180602084015260005b8181101561114a576020818601810151604086840101520161112d565b506000604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561100a5760001960209190910360031b1b16919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104665761046661118e565b80820281158282048414176104665761046661118e565b634e487b7160e01b600052601260045260246000fd5b6000826111f3576111f36111ce565b500490565b6000816112075761120761118e565b506000190190565b60008261121e5761121e6111ce565b500690565b808201808211156104665761046661118e565b600060ff831680611249576112496111ce565b8060ff84160691505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161555361143d600039600081816105830152818161268701526127070152600081816107010152818161168801528181611839015281816123e001526125ba015260008181610421015281816115ee0152818161177501528181612346015281816125380152613b33015260008181610a48015261394d01526000818161084d01528181610cd101528181610fee015261276601526000818161048301526115460152600081816107fb01526114440152600061069201526000818161050001528181610bdc01528181610c1001526121690152600081816109e801528181611ebb01528181611eeb0152818161205f0152818161208f01526120bf0152600081816107a501528181613595015281816135cb015281816135f7015261365e0152600081816107cc01528181611299015281816129b50152818161370b015261377801526000818161072801528181613486015281816136ea01526137400152600061326c0152600061323f01526000613fc701526000613f9f01526000613efa01526000613f2401526000613f4e01526155536000f3fe608060405234801561001057600080fd5b50600436106103f15760003560e01c8063905c051111610215578063c27f08b511610125578063e511e546116100b8578063f288246111610087578063f2882461146109e3578063f2fde38b14610a0a578063f81d079514610a1d578063facd743b14610a30578063ffa1ad7414610a4357600080fd5b8063e511e5461461096a578063e7142f7c1461097d578063ef0e5c0d14610986578063f25b3f991461099957600080fd5b8063d6db2573116100f4578063d6db2573146108ed578063d8e3784c14610947578063dc1bb8f41461094f578063e3380b791461096257600080fd5b8063c27f08b51461088a578063c6b61e4c1461089d578063c9d1e012146108c7578063d03b2bae146108da57600080fd5b8063b67d057b116101a8578063b8f3159011610177578063b8f3159014610838578063b97dd9e214610840578063b980240514610848578063b9d091631461086f578063bece308a1461088257600080fd5b8063b67d057b146107ee578063b7010697146107f6578063b7ab4db51461081d578063b85e881d1461082557600080fd5b80639f2b3154116101e45780639f2b315414610785578063a0e6fc871461078d578063a575fcdc146107a0578063a70b9f0c146107c757600080fd5b8063905c05111461072357806390677bac1461074a578063966ab4ee1461076a5780639a000e5b1461077257600080fd5b806353a1602411610310578063725e494e116102a35780637c28ec3f116102725780637c28ec3f146106b457806380edb5bd146106bd57806384b0196e146106d05780638da5cb5b146106eb5780638de728e4146106fc57600080fd5b8063725e494e1461065457806374af185e146106675780637500af551461067a57806379ed8ead1461068d57600080fd5b806369457a6f116102df57806369457a6f146106115780637071688a1461063157806370d1c58c14610639578063715018a61461064c57600080fd5b806353a16024146105c05780635aa51600146105d357806368bdcbc5146105e6578063694223ac146105f957600080fd5b80633b10244b1161038857806342d21ef71161035757806342d21ef71461053e5780634800d97f1461057e57806348b9e57b146105a55780634d238c8e146105ad57600080fd5b80633b10244b146104f35780633ceac569146104fb5780633cfe551f1461052257806340a141ff1461052b57600080fd5b80632716c737116103c45780632716c737146104a557806333f9acb4146104ba57806336185aa1146104cd5780633777e863146104e057600080fd5b806302a21460146103f65780631811f40b1461041c5780631a4e1e781461045b5780631b142ea71461047e575b600080fd5b6008546000908152600f60205260409020545b6040519081526020015b60405180910390f35b6104437f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610413565b600854600954610469919082565b60408051928352602083019190915201610413565b6104437f000000000000000000000000000000000000000000000000000000000000000081565b6104b86104b336600461488e565b610a6a565b005b6104696104c83660046148bc565b610daa565b6104b86104db366004614aa6565b610edf565b6104096104ee366004614b76565b610efb565b610443610f22565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b61040960115481565b6104b8610539366004614ba4565b610f32565b61055161054c366004614b76565b610f51565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610413565b6104437f000000000000000000000000000000000000000000000000000000000000000081565b600854610409565b6104b86105bb366004614ba4565b610fa6565b6104b86105ce366004614bc1565b610fc2565b6104b86105e1366004614b76565b611193565b6104b86105f4366004614b76565b6111a0565b6106016111ad565b6040519015158152602001610413565b61062461061f366004614b76565b6111b8565b6040516104139190614bde565b610409611224565b6104b8610647366004614c88565b611230565b6104b8611254565b6104b8610662366004614ba4565b611268565b610409610675366004614b76565b611292565b6104b8610688366004614d75565b6112c4565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b61040960105481565b6104096106cb366004614b76565b6118f4565b6106d8611946565b6040516104139796959493929190614ea0565b6002546001600160a01b0316610443565b6104437f000000000000000000000000000000000000000000000000000000000000000081565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b61075d610758366004614f8d565b61198c565b604051610413919061505a565b610624611de4565b610443610780366004614b76565b611def565b6104b8611dfc565b6104b861079b366004614b76565b611e29565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b600954610409565b6104437f000000000000000000000000000000000000000000000000000000000000000081565b610624611e3f565b610409610833366004615081565b611e4b565b610409611e5e565b610409611ea8565b6104437f000000000000000000000000000000000000000000000000000000000000000081565b61040961087d366004614b76565b611eb3565b610409611f21565b610443610898366004614b76565b611f60565b6104696108ab366004614b76565b6005602052600090815260409020600181015460029091015482565b6104096108d5366004614b76565b612057565b6104096108e8366004614b76565b6120b8565b600a54600b54600c54600d54600e54610913949392916001600160a01b03908116911685565b604080519586526020860194909452928401919091526001600160a01b03908116606084015216608082015260a001610413565b6104096120ec565b61060161095d366004614b76565b6120f7565b6104b86121f4565b6104b8610978366004615104565b612262565b6104096103e881565b6104096109943660046151a6565b612807565b6109c86109a7366004614b76565b600f6020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610413565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b6104b8610a18366004614ba4565b61288b565b600754610443906001600160a01b031681565b610601610a3e366004614ba4565b6128c6565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b610aa6610a7f36839003830160a084016151e7565b610a8f6080840160608501614ba4565b610aa161083336869003860186615081565b6128d3565b6000610ab183611eb3565b90506000610abe84611f60565b90506000610aca611f21565b905082602085013580821115610b01576040516320a001eb60e01b8152600481019290925260248201526044015b60405180910390fd5b506127109050610b1760a0860160808701615203565b63ffffffff161115610b2f60a0860160808701615203565b90610b5657604051632149689b60e11b815263ffffffff9091166004820152602401610af8565b506001600160a01b0382161580610b7557506001600160a01b03821633145b82339091610ba95760405163681693c760e11b81526001600160a01b03928316600482015291166024820152604401610af8565b508190508435818114610bd85760405163f0e0744d60e01b815260048101929092526024820152604401610af8565b50507f0000000000000000000000000000000000000000000000000000000000000000610c04846129ae565b10610c0e846129ae565b7f00000000000000000000000000000000000000000000000000000000000000009091610c575760405163e6969f1160e01b815260048101929092526024820152604401610af8565b5050600a5481141580610c735750600e546001600160a01b0316155b610c90576040516316562f8560e11b815260040160405180910390fd5b6103e8604085013581811015610cc2576040516350b2f93b60e11b815260048101929092526024820152604401610af8565b50600090506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663fc7e286d610d066080880160608901614ba4565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6e919061521e565b905060408501358180821115610da057604051634a3c2c5960e01b815260048101929092526024820152604401610af8565b5050505050505050565b6000806000610db885611eb3565b90506000610dc5866120f7565b610dd157600854610dd5565b6009545b6000818152600f60205260409020600201549091508083808210610e155760405163083510bd60e41b815260048101929092526024820152604401610af8565b50506000828152600f60205260409020548087808214610e5157604051635b41520760e11b815260048101929092526024820152604401610af8565b50506040805160008082526020820190925281610e9d565b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610e695790505b506040805180820190915260018082526020820152909150610ec186838b846129da565b85610ecd86600161524d565b975097505050505050505b9250929050565b6000610eeb8888612bab565b9050610da0818787878787612f4f565b6008546000908211610f1a57506000908152600f602052604090205490565b506000919050565b6000610f2d42611f60565b905090565b610f3a612f97565b610f426121f4565b610f4d600382612fc4565b5050565b6009546000818152600f60205260408082205460085480845291832054929384938493849384938493909290610f868b610efb565b600954610f92906118f4565b949c939b5091995097509550909350915050565b610fae612f97565b610fb66121f4565b610fbf81612fd9565b50565b610fcc4282610a6a565b6000610fd66120ec565b90506000610fe2611f21565b90506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631c87b6ac6110236080860160608701614ba4565b6040805160e084901b6001600160e01b03191681526001600160a01b0390921660048301528601356024820152604401600060405180830381600087803b15801561106d57600080fd5b505af1158015611081573d6000803e3d6000fd5b505050506040518060a001604052808281526020018460000160800160208101906110ac9190615203565b63ffffffff1681526040808601356020830152016110d06080860160608701614ba4565b6001600160a01b0390811682523360209283018190528351600a5591830151600b556040830151600c55606080840151600d80549184166001600160a01b0319928316179055608094850151600e805491909416911617909155909161113b91908601908601614ba4565b6001600160a01b0316827f04eee47b3fe9e6bcdec9370371d65501f3fb3f44d2fbf49c2b6834635a7253df866000016040013586604051611186929190918252602082015260400190565b60405180910390a4505050565b61119b612f97565b601055565b6111a8612f97565b601155565b6000610f2d426120f7565b60008181526005602090815260409182902080548351818402810184019094528084526060939283018282801561121857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111fa575b50505050509050919050565b6000610f2d6003612fe4565b61124089898989898989896112c4565b61124981610fc2565b505050505050505050565b61125c612f97565b6112666000612fee565b565b611270612f97565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60006112be7f000000000000000000000000000000000000000000000000000000000000000083615276565b92915050565b6112cc6111ad565b156112d9576112d9613040565b60405163e5c5e9a360e01b815260009073__$bd4735397c9654ec5109019d55c6931403$__9063e5c5e9a39061131590869086906004016152b3565b602060405180830381865af4158015611332573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611356919061521e565b905060006113648a8a612bab565b90506000600190506000818a89604051602001611383939291906152c7565b6040516020818303038152906040528051906020012090506113a36121f4565b6113cb8388834288604051806040016040528060001515815260200160001515815250612f4f565b60006008600001600081546113df906152e9565b918290555060408051606080820183528e825260208083018f815289830151909201518385019081526000868152600f90925284822093518455915160018401559051600290920191909155905163483f31ab60e01b815260048101839052919250907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063483f31ab906024016020604051808303816000875af1158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b9919061521e565b60208601516040015190915081908082146114f05760405163cd6f423360e01b815260048101929092526024820152604401610af8565b505060006115058660200151600001516130b4565b509050600061151582600161524d565b602088015160600151604051633d96c2c960e01b8152600481018790526024810191909152604481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633d96c2c990606401600060405180830381600087803b15801561159257600080fd5b505af11580156115a6573d6000803e3d6000fd5b505050508d847fa181a71286cf34ab6e15a04aec6411ea404897f2cdc5e246558a49dc92fd8fe460405160405180910390a360125484116118e2576115ea8461319f565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561164a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166e9190615302565b6001600160a01b0316306001600160a01b031614905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117089190615302565b6001600160a01b0316306001600160a01b031614905081801561173b5750606089015160a001516001600160a01b031615155b801561174b575060008960800151115b156117ef57606089015160a0015160808a01516040516348fef59560e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926348fef595926117bc926004016001600160a01b03929092168252602082015260400190565b600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b505050505b80801561180c5750606089015160a001516001600160a01b031615155b156118aa57606089015160a00151604051630f41a04d60e11b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690631e83409a906024016020604051808303816000875af1158015611884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a8919061521e565b505b6040516410d211505560da1b9087907fd989775bfca9340a9fcb6a458bef402a5defb0d44211ee8d61a5974e9ad7379b90600090a350505b50505050505050505050505050505050565b60085460009082818111156119255760405163e5edf84760e01b815260048101929092526024820152604401610af8565b50506000828152600f60205260409020600201546112be906108d5906120b8565b60006060806000806000606061195a613238565b611962613265565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b600954606090600061199e898361524d565b6000838152600f60205260409020549091508089358082146119dc576040516332a277ed60e01b815260048101929092526024820152604401610af8565b50506000828152600f60209081526040909120549081908b0135808214611a1f57604051635b41520760e11b815260048101929092526024820152604401610af8565b50506000848152600f6020526040902060010154801580611a43575060408b013581145b819060408d013590611a715760405163beedc8c760e01b815260048101929092526024820152604401610af8565b50506000848152600f60205260409020600101548060608d0135808214611ab45760405163353eb95960e01b815260048101929092526024820152604401610af8565b50505050505060006010604c611aca919061524d565b6001600160401b03811115611ae157611ae161491f565b604051908082528060200260200182016040528015611b0a578160200160208202803683370190505b509050886000602002013581600081518110611b2857611b2861531f565b6020908102919091010152611b3e83600161524d565b60001b81600181518110611b5457611b5461531f565b6020908102919091010152886001602002013581600281518110611b7a57611b7a61531f565b6020908102919091010152611b9082600161524d565b60001b81600381518110611ba657611ba661531f565b6020908102919091010152886002602002013581600481518110611bcc57611bcc61531f565b6020908102919091010152886003602002013581600581518110611bf257611bf261531f565b6020908102919091010152886004602002013581600681518110611c1857611c1861531f565b6020026020010181815250508160001b81600781518110611c3b57611c3b61531f565b6020908102919091010152886005602002013581600881518110611c6157611c6161531f565b602002602001018181525050600060206002611c7d9190615335565b905060005b81811015611cd457898982818110611c9c57611c9c61531f565b9050602002013583826009611cb1919061524d565b81518110611cc157611cc161531f565b6020908102919091010152600101611c82565b506000611ce282600961524d565b9050601054838281518110611cf957611cf961531f565b602090810291909101015260115483611d1383600161524d565b81518110611d2357611d2361531f565b602090810291909101015260c08b013583611d3f83600261524d565b81518110611d4f57611d4f61531f565b6020026020010181815250506000602089899050611d6d9190615276565b905060005b601081108015611d8157508181105b15611dd257602081028a01358086611d99868561524d565b611da490600361524d565b81518110611db457611db461531f565b60209081029190910101525080611dca816152e9565b915050611d72565b50929c9b505050505050505050505050565b6060610f2d42613292565b60006112be60038361338d565b611e046111ad565b611e215760405163850defd360e01b815260040160405180910390fd5b611266613040565b611e31612f97565b611e3a8161319f565b601255565b6060610f2d6003613399565b60006112be611e59836133a6565b613446565b600080611e69611f21565b600a5490915081141580611e865750600d546001600160a01b0316155b611ea3576040516316562f8560e11b815260040160405180910390fd5b919050565b6000610f2d42612057565b6000611ede827f00000000000000000000000000000000000000000000000000000000000000001190565b611f1957611f14611f0f837f0000000000000000000000000000000000000000000000000000000000000000613473565b61347f565b6112be565b600092915050565b6008546009546000919003611f495760405163cbaa395160e01b815260040160405180910390fd5b610f2d611f5560095490565b6106cb90600161524d565b600080611f6c83612057565b90506000611f7984611eb3565b600083815260056020526040902060018101549192509015611fef5780546000819003611fac5750600095945050505050565b81600001611fc085858560010154856134ab565b81548110611fd057611fd061531f565b6000918252602090912001546001600160a01b03169695505050505050565b611ff96003612fe4565b60000361200b57506000949350505050565b6000612016846134f9565b9050600061202382613565565b90508061203386868585516134ab565b815181106120435761204361531f565b602002602001015195505050505050919050565b6000612082827f00000000000000000000000000000000000000000000000000000000000000001190565b611f1957611f146120b3837f0000000000000000000000000000000000000000000000000000000000000000613473565b6136e3565b60006112be7f00000000000000000000000000000000000000000000000000000000000000006120e784613739565b613765565b6000610f2d42611eb3565b6009546008546000911480612110575060125460085411155b1561211d57506000919050565b600061212883611eb3565b9050600061214160086001015460016106cb919061524d565b9050600061214e82613771565b905060006121918461218d612167856120e76001613771565b7f0000000000000000000000000000000000000000000000000000000000000000613765565b1190565b905060006121a78561218d856120e76002613771565b80156121b45750600a5484145b80156121ca5750600e546001600160a01b031615155b905081806121d55750805b156121e7575060009695505050505050565b5060019695505050505050565b60006121fe611ea8565b60008181526005602052604081206001810154929350919003610f4d57612224826134f9565b60018201556122328261379d565b60068190556002820155600181015461224a90613565565b805161225d9183916020909101906146a6565b505050565b61226a6111ad565b1561227757612277613040565b60095460006122868a8361524d565b90506000612293826118f4565b905060006122a58c8c8c8c8c8c61198c565b600754604051633a94343960e21b81529192506001600160a01b03169063ea50d0e4906122da9089908990869060040161534c565b602060405180830381865afa1580156122f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231b919061537c565b6123385760405163a5b2ba1760e01b815260040160405180910390fd5b8260086001018190555060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c69190615302565b6001600160a01b0316306001600160a01b031614905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561243c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124609190615302565b6001600160a01b0316306001600160a01b0316149050600082806124815750815b156127305760005b8f8110156126ca5760008561249f836002615335565b6124aa90600961524d565b815181106124ba576124ba61531f565b602002602001015160001c9050600080861561259f576000886124de866002615335565b6124e990600a61524d565b815181106124f9576124f961531f565b602002602001015160001c9050600081111561259d57612519818461524d565b6040516348fef59560e01b8152306004820152602481018390529093507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348fef59590604401600060405180830381600087803b15801561258457600080fd5b505af1158015612598573d6000803e3d6000fd5b505050505b505b851561263c57604051630f41a04d60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631e83409a906024016020604051808303816000875af115801561260b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262f919061521e565b612639908361524d565b91505b6001600160a01b038316612651575080612666565b61266382600a600101546127106137d9565b90505b60006126728284615399565b905080156126ae576126ae6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016858361389b565b6126b8828761524d565b95505060019093019250612489915050565b50801561273057600d546000906001600160a01b0316156126f657600d546001600160a01b03166126f8565b335b905061272e6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016828461389b565b505b600a5485036127c557600d54600c546040516302c865e360e41b81526001600160a01b03928316600482015260248101919091527f000000000000000000000000000000000000000000000000000000000000000090911690632c865e3090604401600060405180830381600087803b1580156127ac57600080fd5b505af11580156127c0573d6000803e3d6000fd5b505050505b60405160c08f01359087907fd989775bfca9340a9fcb6a458bef402a5defb0d44211ee8d61a5974e9ad7379b90600090a3505050505050505050505050505050565b60405163e5c5e9a360e01b815260009073__$bd4735397c9654ec5109019d55c6931403$__9063e5c5e9a39061284390869086906004016152b3565b602060405180830381865af4158015612860573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612884919061521e565b9392505050565b612893612f97565b6001600160a01b0381166128bd57604051631e4fbdf760e01b815260006004820152602401610af8565b610fbf81612fee565b60006112be6003836138ed565b8251156128f35760405163c7690a3760e01b815260040160405180910390fd5b6020808401516040808601516060808801518351600080825296810180865288905260ff90951693850193909352830152608082015260019060a0016020604051602081039080840390855afa158015612951573d6000803e3d6000fd5b505050602060405103519050806001600160a01b0316836001600160a01b031614838290916129a657604051633672eb9b60e21b81526001600160a01b03928316600482015291166024820152604401610af8565b505050505050565b60006112be7f0000000000000000000000000000000000000000000000000000000000000000836153ac565b60006129e5856120b8565b905060006129f282611f60565b90506001600160a01b038116612a09575050612ba5565b80336001600160a01b0382168114612a475760405163681693c760e11b81526001600160a01b03928316600482015291166024820152604401610af8565b5050826020015115612a5a575050612ba5565b6000612a6583613292565b90506000600382516002612a799190615335565b612a839190615276565b612a8e90600161524d565b8751909150819081811015612abf576040516359d34be160e11b815260048101929092526024820152604401610af8565b50507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c879052603c812060005b8951811015612b6f5760008a8281518110612b1057612b1061531f565b60200260200101519050806000015115612b2a5750612b67565b612b58868381518110612b3f57612b3f61531f565b602002602001015184836128d39092919063ffffffff16565b83612b62816152e9565b945050505b600101612af3565b50828281811015612b9c5760405163bf1ca4cb60e01b815260048101929092526024820152604401610af8565b50505050505050505b50505050565b612bb361470b565b61026882808214612be05760405163f3ccb24760e01b815260048101929092526024820152604401610af8565b5050612bea61470b565b6040805180820190915280612c036020600087896153c0565b612c0c916153ea565b8152602090810190612c229060249087896153c0565b612c2b91615408565b60e01c90528152612c406044602485876153c0565b612c49916153ea565b602082015152612c5d6064604485876153c0565b612c66916153ea565b6020808301510152612c7c6084606485876153c0565b612c85916153ea565b602082015160400152612c9c60a4608485876153c0565b612ca5916153ea565b6020820151606001526040805180820190915280612cc760c460a487896153c0565b612cd0916153ea565b8152602001612ce360c860c487896153c0565b612cec91615408565b60e01c905260408083015191909152805180820190915280612d1260e860c887896153c0565b612d1b916153ea565b8152602001612d2e60ec60e887896153c0565b612d3791615408565b60e01c90526040808301516020015191909152805180820190915280612d6261010c60ec87896153c0565b612d6b916153ea565b8152602001612d8061011061010c87896153c0565b612d8991615408565b60e01c90526040808301516020908101510191909152805180820190915280612db861013061011087896153c0565b612dc1916153ea565b8152602001612dd661013461013087896153c0565b612ddf91615408565b60e01c905260408201516020015160600152612e0161015461013485876153c0565b612e0a916153ea565b606082015152612e2061017461015485876153c0565b612e29916153ea565b606082015160200152612e4261019461017485876153c0565b612e4b916153ea565b606082015160400152612e646101b461019485876153c0565b612e6d916153ea565b6060808301510152612e856101d46101b485876153c0565b612e8e916153ea565b606082015160800152612ea76101e86101d485876153c0565b612eb09161543e565b60608281015191901c60a090910152612ecf6102086101e885876153c0565b612ed8916153ea565b606082015160c00152612ef161022861020885876153c0565b612efa916153ea565b606082015160e0015152612f1461024861022885876153c0565b612f1d916153ea565b606082015160e0015160200152612f3a61026861024885876153c0565b612f43916153ea565b60808201529392505050565b6000612f5a846120f7565b612f6657600854612f6a565b6009545b9050612f79878585848661390f565b612f8e87606001516060015187878786613c1e565b50505050505050565b6002546001600160a01b031633146112665760405163118cdaa760e01b8152336004820152602401610af8565b6000612884836001600160a01b038416613cae565b610f4d600382613da8565b60006112be825490565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000600a819055600b819055600c55600d80546001600160a01b0319908116909155600e805490911690556008805460095491829055604080519283526020830182905290917fc78a70f3b27748d5fa327f6a3c1104b9b007d6a80d20c41f7c0dc4543fbdbdcd910160405180910390a150565b6000806000600284106130c757836130ca565b60025b9050600060018180805b8515613150578584166000036130fd5760019390931b92826130f5816152e9565b9350506130d4565b846000036131085750815b6131128487615399565b60000361311d578291505b6131278487615399565b955060019390931b928261313a816152e9565b9350508480613148906152e9565b9550506130d4565b8460010361316657509788975095505050505050565b60006001613174878461524d565b61317e9190615399565b9050600061318d84600161524d565b919b919a509098505050505050505050565b600954811180156131b257506008548111155b15610fbf57600981905560006131c7826118f4565b90508015806131d75750600a5481115b15610f4d576040805160a08101825282815260006020820181905291810182905260608101829052336080909101819052600a92909255600b819055600c55600d80546001600160a01b0319908116909155600e8054909116909117905550565b6060610f2d7f00000000000000000000000000000000000000000000000000000000000000006000613dbd565b6060610f2d7f00000000000000000000000000000000000000000000000000000000000000006001613dbd565b6060600061329f83612057565b60008181526005602052604090206001810154919250901561334257805460008190036132e25760408051600080825260208201909252905b5095945050505050565b81546040805160208084028201810190925282815291849183018282801561333357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613315575b50505050509350505050919050565b61334c6003612fe4565b60000361336e5760408051600080825260208201909252905b50949350505050565b6000613379836134f9565b905061338481613565565b95945050505050565b60006128848383613e68565b6060600061288483613e92565b60007f87ad602ba7da8fbd0870ea16b81fedb3d066c92bd5549f066c4512db6b28fb9d82600001518360200151846040015185606001518660800151604051602001613429969594939291909586526020860194909452604085019290925260608401526001600160a01b0316608083015263ffffffff1660a082015260c00190565b604051602081830303815290604052805190602001209050919050565b60006112be613453613eed565b8360405161190160f01b8152600281019290925260228201526042902090565b60006128848284615399565b60006112be7f000000000000000000000000000000000000000000000000000000000000000083615276565b60408051602081018690529081018490526060810183905260009082906080016040516020818303038152906040528051906020012060001c6134ee91906153ac565b90505b949350505050565b60008160000361350c5750600019919050565b600082815260056020526040902060010154801561352a5792915050565b60056000613539856001613473565b81526020019081526020016000206002015490508060001461355b5792915050565b5050600654919050565b606060006135736003612fe4565b905080600003613593575050604080516000815260208101909152919050565b7f000000000000000000000000000000000000000000000000000000000000000081116135c4576128846003613399565b60006135f17f00000000000000000000000000000000000000000000000000000000000000008386614018565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0381111561362d5761362d61491f565b604051908082528060200260200182016040528015613656578160200160208202803683370190505b50905060005b7f0000000000000000000000000000000000000000000000000000000000000000811015613365576136b18382815181106136995761369961531f565b6020026020010151600361338d90919063ffffffff16565b8282815181106136c3576136c361531f565b6001600160a01b039092166020928302919091019091015260010161365c565b600061372f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000615335565b6112be9083615276565b60006112be7f000000000000000000000000000000000000000000000000000000000000000083615335565b6000612884828461524d565b60006112be7f000000000000000000000000000000000000000000000000000000000000000083615335565b600081446040516020016137bb929190918252602082015260400190565b60408051601f19818403018152919052805160209091012092915050565b60008080600019858709858702925082811083820303915050806000036138135783828161380957613809615260565b0492505050612884565b8084116138335760405163227bc15360e01b815260040160405180910390fd5b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261225d9084906140a1565b6001600160a01b03811660009081526001830160205260408120541515612884565b606085015151469081811461394057604051631bdade0960e11b815260048101929092526024820152604401610af8565b50506060850151602001517f000000000000000000000000000000000000000000000000000000000000000090808214613996576040516327bcc1e560e21b815260048101929092526024820152604401610af8565b506139a4905082600161524d565b606086015160400151146139b983600161524d565b86606001516040015190916139ea5760405163e5edf84760e01b815260048101929092526024820152604401610af8565b50506000828152600f60205260409020548551518190808214613a2957604051635b41520760e11b815260048101929092526024820152604401610af8565b505060608681015101516000848152600f60205260409020600201548082808210613a705760405163083510bd60e41b815260048101929092526024820152604401610af8565b50506000613a7d836120b8565b9050613a90896060015160800151821490565b60608a0151608001518291613ac157604051633132e89560e01b815260048101929092526024820152604401610af8565b508890508180821015613af05760405163089f306960e41b815260048101929092526024820152604401610af8565b5050845180613b06575086896020015160200151145b89602001516020015190613b305760405163414906c360e01b8152600401610af891815260200190565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb39190615302565b6001600160a01b0316306001600160a01b03161461124957606089015160e001515115613bf357604051636ce3afa960e11b815260040160405180910390fd5b606089015160e00151602001511561124957604051631f9ca2af60e21b815260040160405180910390fd5b6000613c2983611eb3565b90508086808214613c56576040516309ba91ff60e01b815260048101929092526024820152604401610af8565b50506000613c666108d5886120b8565b90506000613c7385612057565b90508082808214613ca057604051631e36b2f360e11b815260048101929092526024820152604401610af8565b5050610da0888888876129da565b60008181526001830160205260408120548015613d97576000613cd2600183615399565b8554909150600090613ce690600190615399565b9050818114613d4b576000866000018281548110613d0657613d0661531f565b9060005260206000200154905080876000018481548110613d2957613d2961531f565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613d5c57613d5c61547e565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506112be565b60009150506112be565b5092915050565b6000612884836001600160a01b038416614104565b606060ff8314613dd757613dd083614153565b90506112be565b818054613de390615494565b80601f0160208091040260200160405190810160405280929190818152602001828054613e0f90615494565b8015613e5c5780601f10613e3157610100808354040283529160200191613e5c565b820191906000526020600020905b815481529060010190602001808311613e3f57829003601f168201915b505050505090506112be565b6000826000018281548110613e7f57613e7f61531f565b9060005260206000200154905092915050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561121857602002820191906000526020600020905b815481526020019060010190808311613ece5750505050509050919050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613f4657507f000000000000000000000000000000000000000000000000000000000000000046145b15613f7057507f000000000000000000000000000000000000000000000000000000000000000090565b610f2d604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60606000846001600160401b038111156140345761403461491f565b60405190808252806020026020018201604052801561405d578160200160208202803683370190505b50905060005b85811015613365576000614078828787614192565b90508083838151811061408d5761408d61531f565b602090810291909101015250600101614063565b60006140b66001600160a01b0384168361421d565b905080516000141580156140db5750808060200190518101906140d9919061537c565b155b1561225d57604051635274afe760e01b81526001600160a01b0384166004820152602401610af8565b600081815260018301602052604081205461414b575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556112be565b5060006112be565b606060006141608361422e565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600083838082106141bf5760405163a12fc55960e01b815260048101929092526024820152604401610af8565b505060006141cc84614256565b905084815b80156132d85760006141ee866141e8600185615399565b89614420565b9050614207868285614201600187615399565b8b61446f565b9250508080614215906154c8565b9150506141d1565b60606128848383600061457f614598565b600060ff8216601f8111156112be57604051632cd44ac360e21b815260040160405180910390fd5b604080517ff8f9cbfae6cc78fbefe7cdc3a1793dfcf4f0e8bbd8cec470b6a28a7a5a3e1efd81527ff5ecf1b3e9debc68e1d9cfabc5997135bfb7a7a3938b7b606b5b4b3f2f1f0ffe60208201527ff6e4ed9ff2d6b458eadcdf97bd91692de2d4da8fd2d0ac50c6ae9a8272523616818301527fc8c0b887b0a8a4489c948c7f847c6125746c645c544c444038302820181008ff60608201527ff7cae577eec2a03cf3bad76fb589591debb2dd67e0aa9834bea6925f6a4a2e0e60808201527fe39ed557db96902cd38ed14fad815115c786af479b7e8324736353433727170760a08201527fc976c13bb96e881cb166a933a55e490d9d56952b8d4e801485467d236242260660c08201527f753a6d1b65325d0c552a4d1345224105391a310b29122104190a11030902010060e0820152610100808201909252600160f81b7e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff600160801b68010000000000000000640100000000620100006010600460026000198c0190810417908104179081041788810417908104179081041790810417908104176001010281900460ff0390910151600092600160ff1b851102919004016112be906004615335565b600081848460405160200161444c92919091825260f81b6001600160f81b031916602082015260210190565b6040516020818303038152906040528051906020012060001c6134f191906153ac565b600080828561447e828961524d565b6144889190615399565b61449291906153ac565b905060008186116144a357816144a5565b855b9050600088866144b761010085615276565b6040516020016144f49392919092835260f89190911b6001600160f81b031916602083015260e01b6001600160e01b031916602182015260250190565b60405160208183030381529060405280519060200120905060008160086101008561451f91906153ac565b6145299190615276565b602081106145395761453961531f565b1a90506000600261454b6008866153ac565b8360ff16901c61455b91906154df565b90508060ff1660011461456e5788614570565b845b9b9a5050505050505050505050565b604051630a12f52160e11b815260040160405180910390fd5b6060824710156145bd5760405163cd78605960e01b8152306004820152602401610af8565b600080866001600160a01b031685876040516145d99190615501565b60006040518083038185875af1925050503d8060008114614616576040519150601f19603f3d011682016040523d82523d6000602084013e61461b565b606091505b509150915061462c87838387614637565b979650505050505050565b6060831561468557825160000361467e57846001600160a01b03163b60000361467e57604051639996b31560e01b81526001600160a01b0386166004820152602401610af8565b50816134f1565b6134f1838381511561469a5781518083602001fd5b61457f8163ffffffff16565b8280548282559060005260206000209081019282156146fb579160200282015b828111156146fb57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906146c6565b50614707929150614771565b5090565b6040805160e081018252600060a0820181815260c08301829052825282516080810184528181526020808201839052818501839052606082019290925290820152908101614757614786565b815260200161476461480f565b8152602001600081525090565b5b808211156147075760008155600101614772565b60408051608081018252600091810182815260608201929092529081526020810161480a6040805160c08101825260006080820181815260a083018290528252825180840184528181526020808201839052808401919091528351808501855282815280820183905283850152835180850190945281845283015290606082015290565b905290565b604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000801916815260200161480a604051806040016040528060008152602001600081525090565b6000610120828403121561488857600080fd5b50919050565b60008061014083850312156148a257600080fd5b823591506148b38460208501614875565b90509250929050565b600080604083850312156148cf57600080fd5b50508035926020909101359150565b60008083601f8401126148f057600080fd5b5081356001600160401b0381111561490757600080fd5b602083019150836020828501011115610ed857600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156149575761495761491f565b60405290565b604051601f8201601f191681016001600160401b03811182821017156149855761498561491f565b604052919050565b60006001600160401b038211156149a6576149a661491f565b5060051b60200190565b8015158114610fbf57600080fd5b6000608082840312156149d057600080fd5b604051608081016001600160401b03811182821017156149f2576149f261491f565b6040529050808235614a03816149b0565b8152602083013560ff81168114614a1957600080fd5b602082015260408381013590820152606092830135920191909152919050565b600082601f830112614a4a57600080fd5b8135614a5d614a588261498d565b61495d565b8082825260208201915060208360071b860101925085831115614a7f57600080fd5b602085015b838110156132d857614a9687826149be565b8352602090920191608001614a84565b600080600080600080600087890360e0811215614ac257600080fd5b88356001600160401b03811115614ad857600080fd5b614ae48b828c016148de565b90995097505060208901356001600160401b03811115614b0357600080fd5b614b0f8b828c01614a39565b965050604089810135955060608a0135945060808a01359350609f1982011215614b3857600080fd5b50614b41614935565b60a0890135614b4f816149b0565b815260c0890135614b5f816149b0565b806020830152508091505092959891949750929550565b600060208284031215614b8857600080fd5b5035919050565b6001600160a01b0381168114610fbf57600080fd5b600060208284031215614bb657600080fd5b813561288481614b8f565b60006101208284031215614bd457600080fd5b6128848383614875565b602080825282518282018190526000918401906040840190835b81811015614c1f5783516001600160a01b0316835260209384019390920191600101614bf8565b509095945050505050565b600082601f830112614c3b57600080fd5b8135614c49614a588261498d565b8082825260208201915060208360051b860101925085831115614c6b57600080fd5b602085015b838110156132d8578035835260209283019201614c70565b60008060008060008060008060006101e08a8c031215614ca757600080fd5b89356001600160401b03811115614cbd57600080fd5b614cc98c828d016148de565b909a5098505060208a0135965060408a0135955060608a01356001600160401b03811115614cf657600080fd5b614d028c828d01614c2a565b95505060808a01356001600160401b03811115614d1e57600080fd5b614d2a8c828d01614a39565b94505060a08a01356001600160401b03811115614d4657600080fd5b614d528c828d016148de565b9094509250614d6690508b60c08c01614875565b90509295985092959850929598565b60008060008060008060008060c0898b031215614d9157600080fd5b88356001600160401b03811115614da757600080fd5b614db38b828c016148de565b909950975050602089013595506040890135945060608901356001600160401b03811115614de057600080fd5b614dec8b828c01614c2a565b94505060808901356001600160401b03811115614e0857600080fd5b614e148b828c01614a39565b93505060a08901356001600160401b03811115614e3057600080fd5b614e3c8b828c016148de565b999c989b5096995094979396929594505050565b60005b83811015614e6b578181015183820152602001614e53565b50506000910152565b60008151808452614e8c816020860160208601614e50565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e060208201526000614ebf60e0830189614e74565b8281036040840152614ed18189614e74565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015614f27578351835260209384019390920191600101614f09565b50909b9a5050505050505050505050565b8060e081018310156112be57600080fd5b60008083601f840112614f5b57600080fd5b5081356001600160401b03811115614f7257600080fd5b6020830191508360208260051b8501011115610ed857600080fd5b6000806000806000806101408789031215614fa757600080fd5b86359550614fb88860208901614f38565b94506101008701356001600160401b03811115614fd457600080fd5b614fe089828a01614f49565b9095509350506101208701356001600160401b0381111561500057600080fd5b61500c89828a016148de565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b82811015615050578151865260209586019590910190600101615032565b5093949350505050565b602081526000612884602083018461501e565b803563ffffffff81168114611ea357600080fd5b600060a082840312801561509457600080fd5b5060405160009060a081016001600160401b03811182821017156150ba576150ba61491f565b604090815284358252602080860135908301528481013590820152606084013591506150e582614b8f565b8160608201526150f76080850161506d565b6080820152949350505050565b600080600080600080600080610160898b03121561512157600080fd5b883597506151328a60208b01614f38565b96506101008901356001600160401b0381111561514e57600080fd5b61515a8b828c01614f49565b9097509550506101208901356001600160401b0381111561517a57600080fd5b6151868b828c016148de565b9095509350506101408901356001600160401b03811115614e3057600080fd5b600080602083850312156151b957600080fd5b82356001600160401b038111156151cf57600080fd5b6151db858286016148de565b90969095509350505050565b6000608082840312156151f957600080fd5b61288483836149be565b60006020828403121561521557600080fd5b6128848261506d565b60006020828403121561523057600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156112be576112be615237565b634e487b7160e01b600052601260045260246000fd5b60008261528557615285615260565b500490565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006134f160208301848661528a565b60ff841681528260208201526060604082015260006134ee606083018461501e565b6000600182016152fb576152fb615237565b5060010190565b60006020828403121561531457600080fd5b815161288481614b8f565b634e487b7160e01b600052603260045260246000fd5b80820281158282048414176112be576112be615237565b60408152600061536060408301858761528a565b8281036020840152615372818561501e565b9695505050505050565b60006020828403121561538e57600080fd5b8151612884816149b0565b818103818111156112be576112be615237565b6000826153bb576153bb615260565b500690565b600080858511156153d057600080fd5b838611156153dd57600080fd5b5050820193919092039150565b803560208310156112be57600019602084900360031b1b1692915050565b80356001600160e01b03198116906004841015613da1576001600160e01b031960049490940360031b84901b1690921692915050565b80356bffffffffffffffffffffffff198116906014841015613da1576bffffffffffffffffffffffff1960149490940360031b84901b1690921692915050565b634e487b7160e01b600052603160045260246000fd5b600181811c908216806154a857607f821691505b60208210810361488857634e487b7160e01b600052602260045260246000fd5b6000816154d7576154d7615237565b506000190190565b600060ff8316806154f2576154f2615260565b8060ff84160691505092915050565b60008251615513818460208701614e50565b919091019291505056fea2646970667358221220d035c5ef28ed80166f21639ddcd5504f072c41bbafa9a9b39d4fb20512efa1ab64736f6c634300081b00336080604052348015600f57600080fd5b506101658061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ea50d0e414610030575b600080fd5b61004861003e36600461005c565b6001949350505050565b604051901515815260200160405180910390f35b6000806000806040858703121561007257600080fd5b843567ffffffffffffffff81111561008957600080fd5b8501601f8101871361009a57600080fd5b803567ffffffffffffffff8111156100b157600080fd5b8760208284010111156100c357600080fd5b60209182019550935085013567ffffffffffffffff8111156100e457600080fd5b8501601f810187136100f557600080fd5b803567ffffffffffffffff81111561010c57600080fd5b8760208260051b840101111561012157600080fd5b94979396506020019450505056fea2646970667358221220615392641ffe5f3a0971c4eb47a66c2aa7ae7637a4dd34f958b6e4dbc93661ed64736f6c634300081b003360e060405234801561001057600080fd5b50604051610bb7380380610bb783398101604081905261002f91610071565b6001600160a01b0380841660a052841660c05261004c81836100b9565b608052506100e492505050565b6001600160a01b038116811461006e57600080fd5b50565b6000806000806080858703121561008757600080fd5b845161009281610059565b60208601519094506100a381610059565b6040860151606090960151949790965092505050565b80820281158282048414176100de57634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a05160c051610a746101436000396000818161016f0152818161020001528181610477015261066f0152600081816101ae015281816102ea01526103b601526000818160e40152818161024f015261054c0152610a746000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80639611c5c2116100715780639611c5c2146101a9578063b6b55f25146101d0578063c60d588d146101e3578063f8fd9795146101f6578063fc0c546a146101fe578063fc7e286d1461022457600080fd5b806308b4af71146100b95780630d5e5fff146100df5780631c87b6ac146101065780632c865e301461011b57806352df49ec1461012e57806382bfefc81461016a575b600080fd5b6100cc6100c7366004610927565b610244565b6040519081526020015b60405180910390f35b6100cc7f000000000000000000000000000000000000000000000000000000000000000081565b610119610114366004610953565b6102df565b005b610119610129366004610953565b6103ab565b61015561013c36600461097d565b6001602081905260009182526040909120805491015482565b604080519283526020830191909152016100d6565b6101917f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d6565b6101917f000000000000000000000000000000000000000000000000000000000000000081565b6101196101de366004610998565b61046a565b6101196101f1366004610998565b6104fc565b6101196105ce565b7f0000000000000000000000000000000000000000000000000000000000000000610191565b6100cc61023236600461097d565b60006020819052908152604090205481565b6000610279836102747f0000000000000000000000000000000000000000000000000000000000000000426109c7565b111590565b15610286575060006102d9565b6001600160a01b038216600090815260208181526040808320546001928390529220015484106102d6576001600160a01b0383166000908152600160205260409020546102d390826109da565b90505b90505b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811461033a57604051632ac332c160e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b506001600160a01b038216600090815260208190526040812080548392906103639084906109da565b90915550506040518181526001600160a01b038316907f8c2455f4b82f1285751e0f21f0cda7612aa81cf700ab606c3e2250253ff1e400906020015b60405180910390a25050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811461040157604051632ac332c160e01b81526001600160a01b039091166004820152602401610331565b506001600160a01b0382166000908152602081905260408120805483929061042a9084906109c7565b90915550506040518181526001600160a01b038316907f6567969aa8387adeedb0b23fd1b47a09157bfb8fdb2a11e8b1c03b8b0e78b48f9060200161039f565b61049f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846106cb565b33600090815260208190526040812080548392906104be9084906109c7565b909155505060405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c906020015b60405180910390a250565b336000908152602081905260409020548180821015610537576040516309b8b78960e01b815260048101929092526024820152604401610331565b505060405180604001604052808281526020017f00000000000000000000000000000000000000000000000000000000000000004261057691906109c7565b9052336000818152600160208181526040928390208551815594015193018390555190917f9d22371eec6fd87e081855b42b28f152e79799fa5a89bf4e30f8acf26d29ed95916104f191858252602082015260400190565b33600090815260016020818152604092839020835180850190945280548452909101549082018190524290808210156106235760405163b32ab8a760e01b815260048101929092526024820152604401610331565b505033600090815260016020818152604080842084815590920183905583519083905290822080549192909161065a9084906109da565b90915550508051610697906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016903390610738565b805160405190815233907fa5b1c510c6d1fc318ad8a59c08331317c170ad7f42e0bff2ece9b32d0feb6859906020016104f1565b6040516001600160a01b0384811660248301528381166044830152606482018390526107329186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061076e565b50505050565b6040516001600160a01b0383811660248301526044820183905261076991859182169063a9059cbb90606401610700565b505050565b60006107836001600160a01b038416836107d1565b905080516000141580156107a85750808060200190518101906107a691906109ed565b155b1561076957604051635274afe760e01b81526001600160a01b0384166004820152602401610331565b60606102d6838360006107e26107fb565b604051630a12f52160e11b815260040160405180910390fd5b6060824710156108205760405163cd78605960e01b8152306004820152602401610331565b600080866001600160a01b0316858760405161083c9190610a0f565b60006040518083038185875af1925050503d8060008114610879576040519150601f19603f3d011682016040523d82523d6000602084013e61087e565b606091505b509150915061088f8783838761089c565b925050505b949350505050565b606083156108ea5782516000036108e357846001600160a01b03163b6000036108e357604051639996b31560e01b81526001600160a01b0386166004820152602401610331565b5081610894565b61089483838151156108ff5781518083602001fd5b6107e28163ffffffff16565b80356001600160a01b038116811461092257600080fd5b919050565b6000806040838503121561093a57600080fd5b8235915061094a6020840161090b565b90509250929050565b6000806040838503121561096657600080fd5b61096f8361090b565b946020939093013593505050565b60006020828403121561098f57600080fd5b6102d68261090b565b6000602082840312156109aa57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102d9576102d96109b1565b818103818111156102d9576102d96109b1565b6000602082840312156109ff57600080fd5b815180151581146102d657600080fd5b6000825160005b81811015610a305760208186018101518583015201610a16565b50600092019182525091905056fea26469706673582212206b5d1bd1791bf512e18f99157084d837ad4f454e30e861a913d751d0407d91ef64736f6c634300081b003361010060405261001060018061038f565b600055600060035534801561002457600080fd5b50604051611010380380611010833981016040819052610043916103a2565b6001600160a01b03821660805260a08190526100608160026104c3565b60c05261006e60018261009d565b60a05160c0516000805481526002602052604090206100929290916001919061014d565b60e0525061059d9050565b60008080526020839052604081205560015b818111610148576101278360006100c76001856104d6565b8152602001908152602001600020548460000160006001856100e991906104d6565b815260200190815260200160002054604051602001610112929190918252602082015260400190565b60408051601f198184030181529190526102af565b60008281526020859052604090205580610140816104e9565b9150506100af565b505050565b835460009080820361016f5750506000828152602084905260409020546102a7565b82810361018e57505060008281526001850160205260409020546102a7565b600061019b6001836104d6565b905060006101a88261034d565b600081815260018a01602052604090205490915082821c825b8881101561029e57600180831614801561026257600082815260018d01602052604090205484900361022e5760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b604482015260640160405180910390fd5b600082815260018d0160209081526040918290205482519182015290810185905261025b90606001610112565b9350610291565b600082815260208c815260409182902054915161028e9261011292889201918252602082015260400190565b93505b50600191821c91016101c1565b50909450505050505b949350505050565b604080516001808252818301909252600091602082018180368337019050506002836040516102de9190610532565b602060405180830381855afa1580156102fb573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061031e919061053e565b60405160200161032f929190610557565b60405160208183030381529060405261034790610576565b92915050565b600080825b806001166001036103725781610367816104e9565b92505060011c610352565b5092915050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561034757610347610379565b600080604083850312156103b557600080fd5b82516001600160a01b03811681146103cc57600080fd5b6020939093015192949293505050565b6001815b6001841115610417578085048111156103fb576103fb610379565b600184161561040957908102905b60019390931c9280026103e0565b935093915050565b60008261042e57506001610347565b8161043b57506000610347565b8160018114610451576002811461045b57610477565b6001915050610347565b60ff84111561046c5761046c610379565b50506001821b610347565b5060208310610133831016604e8410600b841016171561049a575081810a610347565b6104a760001984846103dc565b80600019048211156104bb576104bb610379565b029392505050565b60006104cf838361041f565b9392505050565b8181038181111561034757610347610379565b6000600182016104fb576104fb610379565b5060010190565b6000815160005b818110156105235760208185018101518683015201610509565b50600093019283525090919050565b60006104cf8284610502565b60006020828403121561055057600080fd5b5051919050565b60006105638285610502565b60ff199390931683525050601f01919050565b80516020808301519190811015610597576000198160200360031b1b821691505b50919050565b60805160a05160c05160e051610a176105f960003960006103ff0152600081816102480152818161029e0152818161045e01526104ed01526000818161043d01526104cc015260008181610107015261039d0152610a176000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80637a5080221161005b5780637a508022146100d957806387351813146100f95780639611c5c2146101025780639b24b3b01461014157600080fd5b8063086dc8d4146100825780631f6d510b1461009e578063483f31ab146100c6575b600080fd5b61008b60035481565b6040519081526020015b60405180910390f35b6100b16100ac36600461083c565b610154565b60408051928352602083019190915201610095565b61008b6100d43660046108ba565b610390565b61008b6100e73660046108ba565b60026020526000908152604090205481565b61008b60005481565b6101297f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61014f3660046108ba565b6104b6565b825160009081907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008111156101a8576040516353bb503760e11b815260040161019f91815260200190565b60405180910390fd5b50837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008111156101ee576040516311d1480560e21b815260040161019f91815260200190565b50827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000081111561023457604051633b379f8b60e21b815260040161019f91815260200190565b5060008054815260026020526040902080547f00000000000000000000000000000000000000000000000000000000000000000361029557600160008082825461027e91906108e9565b909155505060008054815260026020526040902090505b600081600001547f000000000000000000000000000000000000000000000000000000000000000060016000546102cc91906108fc565b6102d6919061090f565b6102e091906108e9565b6040805160e0810182523360a082019081524660c08301528152602081018a90529081018890526060810187905260808101829052909150600061032382610511565b905061032f8482610595565b506003805490600061034083610926565b9190505550806000547f1f0faf82fa8c7b10dd392417c6976d0ed764deb80fb07211d5928c2944ddb80d8560405161037a91815260200190565b60405180910390a3989197509095505050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103db5760405163e5336a6b60e01b815260040160405180910390fd5b60005482106103fd5760405163c490199960e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060018311156104855760008381526002602052604090206104829060017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061061a565b90505b6000546104938460016108e9565b036104b05760016000808282546104aa91906108e9565b90915550505b92915050565b60008181526002602052604081206104b09060017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061061a565b60006104b08260000151836020015184604001518560600151866080015160405160200161058195949392919085516001600160a01b03168152602095860151868201528451604082015293909401516060840152608083019190915260a082015260c081019190915260e00190565b604051602081830303815290604052610778565b8154600090816105a482610810565b90508360005b828110156105e9576000818152600188016020908152604091829020548251918201529081018390526105df90606001610581565b91506001016105aa565b5060008281526001870160205260408120829055865490879061060b83610926565b90915550929695505050505050565b835460009080820361063c575050600082815260208490526040902054610770565b82810361065b5750506000828152600185016020526040902054610770565b60006106686001836108fc565b9050600061067582610810565b600081815260018a01602052604090205490915082821c825b8881101561076757600180831614801561072b57600082815260018d0160205260409020548490036106f75760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b604482015260640161019f565b600082815260018d0160209081526040918290205482519182015290810185905261072490606001610581565b935061075a565b600082815260208c81526040918290205491516107579261058192889201918252602082015260400190565b93505b50600191821c910161068e565b50909450505050505b949350505050565b604080516001808252818301909252600091602082018180368337019050506002836040516107a7919061096f565b602060405180830381855afa1580156107c4573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906107e79190610982565b6040516020016107f892919061099b565b6040516020818303038152906040526104b0906109ba565b600080825b80600116600103610835578161082a81610926565b92505060011c610815565b5092915050565b6000806000838503608081121561085257600080fd5b604081121561086057600080fd5b506040516040810181811067ffffffffffffffff8211171561089257634e487b7160e01b600052604160045260246000fd5b6040908152853582526020808701359083015290969085013595506060909401359392505050565b6000602082840312156108cc57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104b0576104b06108d3565b818103818111156104b0576104b06108d3565b80820281158282048414176104b0576104b06108d3565b600060018201610938576109386108d3565b5060010190565b6000815160005b818110156109605760208185018101518683015201610946565b50600093019283525090919050565b600061097b828461093f565b9392505050565b60006020828403121561099457600080fd5b5051919050565b60006109a7828561093f565b60ff199390931683525050601f01919050565b805160208083015191908110156109db576000198160200360031b1b821691505b5091905056fea2646970667358221220f75205fbb21a667798c9bdcb51736a6032fabb7985f1f41cbfaf57b7fc611be764736f6c634300081b003360a060405234801561001057600080fd5b50604051610aac380380610aac83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610a0d61009f6000396000818160f601528181610135015281816101ee015261029e0152610a0d6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632249f6531461005c5780633d96c2c9146100895780637fb349671461009e57806384f15db2146100b15780639611c5c2146100f1575b600080fd5b61006f61006a3660046106e4565b610130565b604080519283526020830191909152015b60405180910390f35b61009c6100973660046106fd565b6101e3565b005b61009c6100ac366004610729565b61029c565b6100e16100bf3660046107cb565b6000918252602082815260408084209284526002909201905290205460ff1690565b6040519015158152602001610080565b6101187f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610080565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b67d057b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b591906107ed565b8311156101c757506000928392509050565b5050600090815260208190526040902080546001909101549091565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461022c5760405163164a486160e11b815260040160405180910390fd5b8161024a576040516339e16d6560e11b815260040160405180910390fd5b600083815260208181526040918290208481556001018390559051828152839185917fd3fab397eb3e47fb43090430543ca9623e09aeddf27bfde1bf7bdca871ee9ebc910160405180910390a3505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b67d057b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031e91906107ed565b841115849061034c57604051630e194a6d60e01b815260040161034391815260200190565b60405180910390fd5b5061035d6060860160408701610822565b6001600160a01b031633146103786060870160408801610822565b3390916103ab576040516357aad58160e01b81526001600160a01b03928316600482015291166024820152604401610343565b5050466060860135146103d1576040516315dfb1f160e21b815260040160405180910390fd5b60008481526020819052604090208054858161040357604051635228479160e11b815260040161034391815260200190565b5060008581526002830160205260409020548690869060ff161561044357604051633f5c70b560e21b815260048101929092526024820152604401610343565b5050600182015480848082111561047657604051631206f36760e21b815260048101929092526024820152604401610343565b506000905061049261048d368b90038b018b6108ac565b610507565b90506104a18686838a8761056a565b600087815260028501602052604090819020805460ff1916600117905551819084908a907f34bc3301c4660a5642d2246e175e7fea498c94258d39dcaa555a52464dbb083d906104f4908c815260200190565b60405180910390a4505050505050505050565b80516020808301516040808501518151855181860152948401519185019190915281516001600160a01b03166060850152910151608083015260a08201526000906105649060c0015b60405160208183030381529060405261064c565b92915050565b828260005b8681101561060457600180831614806105be576105b9848a8a858181106105985761059861093f565b90506020020135604051602001610550929190918252602082015260400190565b6105f5565b6105f58989848181106105d3576105d361093f565b9050602002013585604051602001610550929190918252602082015260400190565b935050600191821c910161056f565b508282868682841461063f57604051635f216bf160e01b81526004810194909452602484019290925260448301526064820152608401610343565b5050505050505050505050565b6040805160018082528183019092526000916020820181803683370190505060028360405161067b9190610985565b602060405180830381855afa158015610698573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906106bb91906107ed565b6040516020016106cc929190610991565b604051602081830303815290604052610564906109b0565b6000602082840312156106f657600080fd5b5035919050565b60008060006060848603121561071257600080fd5b505081359360208301359350604090920135919050565b600080600080600085870361010081121561074357600080fd5b60a081121561075157600080fd5b5085945060a0850135935060c0850135925060e085013567ffffffffffffffff81111561077d57600080fd5b8601601f8101881361078e57600080fd5b803567ffffffffffffffff8111156107a557600080fd5b8860208260051b84010111156107ba57600080fd5b959894975092955050506020019190565b600080604083850312156107de57600080fd5b50508035926020909101359150565b6000602082840312156107ff57600080fd5b5051919050565b80356001600160a01b038116811461081d57600080fd5b919050565b60006020828403121561083457600080fd5b61083d82610806565b9392505050565b6040516060810167ffffffffffffffff8111828210171561087557634e487b7160e01b600052604160045260246000fd5b60405290565b6040805190810167ffffffffffffffff8111828210171561087557634e487b7160e01b600052604160045260246000fd5b600081830360a0811280156108c057600080fd5b5060006108cb610844565b60408312156108d8578182fd5b6108e061087b565b853581526020808701359082015281526040603f1984011215610901578182fd5b61090961087b565b925061091760408601610806565b8352606085013560208085019190915281019290925250608090920135604083015250919050565b634e487b7160e01b600052603260045260246000fd5b6000815160005b81811015610976576020818501810151868301520161095c565b50600093019283525090919050565b600061083d8284610955565b600061099d8285610955565b60ff199390931683525050601f01919050565b805160208083015191908110156109d1576000198160200360031b1b821691505b5091905056fea26469706673582212204355d00d3f14ad9f0b3466839a525edc3e88f7b45b6f07cff8c626ecec45e8d064736f6c634300081b0033";
|
|
4
|
+
export const RollupBytecode = "0x610300604052348015610010575f5ffd5b50604051618c45380380618c4583398101604081905261002f91610e5d565b82815f0151826020015183604001518282856040518060400160405280600c81526020016b0417a74656320526f6c6c75760a41b815250604051806040016040528060018152602001603160f81b8152506100935f8361045460201b90919060201c565b610120526100a2816001610454565b61014052815160208084019190912060e052815190820120610100524660a05261012e60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526001600160a01b03811661016557604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61016e81610486565b5050426101c0525061016092909252610180526101a0525060405161019290610cf7565b604051809103905ff0801580156101ab573d5f5f3e3d5ffd5b50600780546001600160a01b0319166001600160a01b039283161790558781166102a08190529087166102c052604080516362eb326360e11b8152905163c5d664c6916004808201926020929091908290030181865afa158015610211573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102359190610f70565b6001600160a01b03166102e0819052815160208301516040513092919061025b90610d04565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103905ff080158015610297573d5f5f3e3d5ffd5b506001600160a01b03166102605260405130906004906102b690610d11565b6001600160a01b0390921682526020820152604001604051809103905ff0801580156102e4573d5f5f3e3d5ffd5b506001600160a01b031661022052604051309061030090610d1e565b6001600160a01b039091168152602001604051809103905ff080158015610329573d5f5f3e3d5ffd5b506001600160a01b0316610240526010859055601184905560016102805243610200526060808201516101e0526040805191820181527f2a05cb8aeefe9b9797f90650eae072f5ab7437807e62f9724ce190046777986082525f6020838101828152928401828152828052600f90915292517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3755590517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3765590517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec377555b825181101561043f5761043783828151811061042457610424610f8b565b60200260200101516104d760201b60201c565b600101610406565b506104486104e6565b505050505050506111f5565b5f60208351101561046f5761046883610552565b9050610480565b8161047a8482611022565b5060ff90505b92915050565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6104e260038261058f565b5050565b5f6104ef6105aa565b5f81815260056020526040812060018101549293509190036104e257610514826105b9565b60018201556105228261061e565b60068190556002820155600181015461053a90610659565b805161054d918391602090910190610d2b565b505050565b5f5f829050601f8151111561057c578260405163305a27a960e01b815260040161015c91906110dc565b805161058782611111565b179392505050565b5f6105a3836001600160a01b03841661076c565b9392505050565b5f6105b4426107b8565b905090565b5f815f036105c957505f19919050565b5f8281526005602052604090206001015480156105e65792915050565b60055f6105f48560016107ea565b81526020019081526020015f20600201549050805f146106145792915050565b5050600654919050565b5f814460405160200161063b929190918252602082015260400190565b60408051601f19818403018152919052805160209091012092915050565b60605f61066660036107f5565b9050805f03610684575050604080515f815260208101909152919050565b6101a0518111610698576105a360036107fe565b5f6106ad6101a051838661080a60201b60201c565b90505f6101a0516001600160401b038111156106cb576106cb610db9565b6040519080825280602002602001820160405280156106f4578160200160208202803683370190505b5090505f5b6101a0518110156107635761073183828151811061071957610719610f8b565b6020026020010151600361089060201b90919060201c565b82828151811061074357610743610f8b565b6001600160a01b03909216602092830291909101909101526001016106f9565b50949350505050565b5f8181526001830160205260408120546107b157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610480565b505f610480565b5f6107c5826101c0511190565b6107e3576107de6107d9836101c0516107ea565b61089b565b610480565b5f92915050565b5f6105a38284611148565b5f610480825490565b60605f6105a3836108b8565b60605f846001600160401b0381111561082557610825610db9565b60405190808252806020026020018201604052801561084e578160200160208202803683370190505b5090505f5b85811015610763575f610867828787610911565b90508083838151811061087c5761087c610f8b565b602090810291909101015250600101610853565b5f6105a383836109a4565b5f61016051610180516108ae919061115b565b6104809083611186565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561090557602002820191905f5260205f20905b8154815260200190600101908083116108f1575b50505050509050919050565b5f838380821061093d5760405163a12fc55960e01b81526004810192909252602482015260440161015c565b505f905061094a846109ca565b905084815b801561099a575f61096b86610965600185611148565b89610b97565b905061098486828561097e600187611148565b8b610bec565b925050808061099290611199565b91505061094f565b5095945050505050565b5f825f0182815481106109b9576109b9610f8b565b905f5260205f200154905092915050565b5f610b8c82604080517ff8f9cbfae6cc78fbefe7cdc3a1793dfcf4f0e8bbd8cec470b6a28a7a5a3e1efd81527ff5ecf1b3e9debc68e1d9cfabc5997135bfb7a7a3938b7b606b5b4b3f2f1f0ffe60208201527ff6e4ed9ff2d6b458eadcdf97bd91692de2d4da8fd2d0ac50c6ae9a8272523616818301527fc8c0b887b0a8a4489c948c7f847c6125746c645c544c444038302820181008ff60608201527ff7cae577eec2a03cf3bad76fb589591debb2dd67e0aa9834bea6925f6a4a2e0e60808201527fe39ed557db96902cd38ed14fad815115c786af479b7e8324736353433727170760a08201527fc976c13bb96e881cb166a933a55e490d9d56952b8d4e801485467d236242260660c08201527f753a6d1b65325d0c552a4d1345224105391a310b29122104190a11030902010060e0820152610100808201909252600160f81b6001600160801b68010000000000000000640100000000620100006010600460025f198c019081041790810417908104178881041790810417908104179081041790810417017e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff0281900460ff039091015104600160ff1b909211020190565b61048090600461115b565b5f818484604051602001610bc292919091825260f81b6001600160f81b031916602082015260210190565b604051602081830303815290604052805190602001205f1c610be491906111ae565b949350505050565b5f808285610bfa82896111c1565b610c049190611148565b610c0e91906111ae565b90505f818611610c1e5781610c20565b855b90505f8886610c3161010085611186565b604051602001610c6e9392919092835260f89190911b6001600160f81b031916602083015260e01b6001600160e01b031916602182015260250190565b6040516020818303038152906040528051906020012090505f81600861010085610c9891906111ae565b610ca29190611186565b60208110610cb257610cb2610f8b565b1a90505f6002610cc36008866111ae565b8360ff16901c610cd391906111d4565b90508060ff16600114610ce65788610ce8565b845b9b9a5050505050505050505050565b610173806166f383390190565b610a148061686683390190565b610f778061727a83390190565b610a54806181f183390190565b828054828255905f5260205f20908101928215610d7e579160200282015b82811115610d7e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610d49565b50610d8a929150610d8e565b5090565b5b80821115610d8a575f8155600101610d8f565b6001600160a01b0381168114610db6575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715610df557610df5610db9565b604052919050565b5f60808284031215610e0d575f5ffd5b604051608081016001600160401b0381118282101715610e2f57610e2f610db9565b6040908152835182526020808501519083015283810151908201526060928301519281019290925250919050565b5f5f5f5f5f5f5f610140888a031215610e74575f5ffd5b8751610e7f81610da2565b6020890151909750610e9081610da2565b604089015160608a015160808b01519298509096509450610eb081610da2565b60a08901519093506001600160401b03811115610ecb575f5ffd5b8801601f81018a13610edb575f5ffd5b80516001600160401b03811115610ef457610ef4610db9565b8060051b610f0460208201610dcd565b9182526020818401810192908101908d841115610f1f575f5ffd5b6020850194505b83851015610f4d5784519250610f3b83610da2565b82825260209485019490910190610f26565b8096505050505050610f628960c08a01610dfd565b905092959891949750929550565b5f60208284031215610f80575f5ffd5b81516105a381610da2565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680610fb357607f821691505b602082108103610fd157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561054d57805f5260205f20601f840160051c81016020851015610ffc5750805b601f840160051c820191505b8181101561101b575f8155600101611008565b5050505050565b81516001600160401b0381111561103b5761103b610db9565b61104f816110498454610f9f565b84610fd7565b6020601f821160018114611081575f831561106a5750848201515b5f19600385901b1c1916600184901b17845561101b565b5f84815260208120601f198516915b828110156110b05787850151825560209485019460019092019101611090565b50848210156110cd57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610fd1575f1960209190910360031b1b16919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561048057610480611134565b808202811582820484141761048057610480611134565b634e487b7160e01b5f52601260045260245ffd5b5f8261119457611194611172565b500490565b5f816111a7576111a7611134565b505f190190565b5f826111bc576111bc611172565b500690565b8082018082111561048057610480611134565b5f60ff8316806111e6576111e6611172565b8060ff84160691505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161532f6113c45f395f818161057001528181611fbd015261203c01525f81816106db01528181611d3101528181611ef401528181612596015261273f01525f818161040e01528181611c9a01528181611e77015281816124ff015281816126800152613a0a01525f8181610a33015261382701525f818161082701528181610cb801528181610fc3015261209b01525f8181610470015261245e01525f81816107d5015261236201525f61066c01525f81816104ed01528181610bc401528181610bf80152611ac701525f81816109c00152818161182f0152818161185f015281816119c5015281816119f50152611a2401525f818161077f0152818161338c015281816133c1015281816133ec015261345201525f81816107a601528181611258015281816128cf015281816134fe015261356801525f818161070201528181613294015281816134dd015261353201525f612f8001525f612f5401525f613e8901525f613e6101525f613dbc01525f613de601525f613e10015261532f5ff3fe608060405234801561000f575f5ffd5b50600436106103e0575f3560e01c806390677bac1161020b578063c6b61e4c1161011f578063e7142f7c116100b4578063f2fde38b11610084578063f2fde38b146109e2578063f81d0795146109f5578063facd743b14610a08578063fcb7ded114610a1b578063ffa1ad7414610a2e575f5ffd5b8063e7142f7c14610956578063ef0e5c0d1461095f578063f25b3f9914610972578063f2882461146109bb575f5ffd5b8063d8e3784c116100ef578063d8e3784c14610920578063dc1bb8f414610928578063e3380b791461093b578063e511e54614610943575f5ffd5b8063c6b61e4c14610877578063c9d1e012146108a0578063d03b2bae146108b3578063d6db2573146108c6575f5ffd5b8063b7010697116101a0578063b97dd9e211610170578063b97dd9e21461081a578063b980240514610822578063b9d0916314610849578063bece308a1461085c578063c27f08b514610864575f5ffd5b8063b7010697146107d0578063b7ab4db5146107f7578063b85e881d146107ff578063b8f3159014610812575f5ffd5b8063a0e6fc87116101db578063a0e6fc8714610767578063a575fcdc1461077a578063a70b9f0c146107a1578063b67d057b146107c8575f5ffd5b806390677bac14610724578063966ab4ee146107445780639a000e5b1461074c5780639f2b31541461075f575f5ffd5b806353a1602411610302578063725e494e1161029757806380edb5bd1161026757806380edb5bd1461069757806384b0196e146106aa5780638da5cb5b146106c55780638de728e4146106d6578063905c0511146106fd575f5ffd5b8063725e494e1461064157806374af185e1461065457806379ed8ead146106675780637c28ec3f1461068e575f5ffd5b8063694223ac116102d2578063694223ac146105f957806369457a6f146106115780637071688a14610631578063715018a614610639575f5ffd5b806353a16024146105ad578063556ad534146105c05780635aa51600146105d357806368bdcbc5146105e6575f5ffd5b80633b10244b1161037857806342d21ef71161034857806342d21ef71461052b5780634800d97f1461056b57806348b9e57b146105925780634d238c8e1461059a575f5ffd5b80633b10244b146104e05780633ceac569146104e85780633cfe551f1461050f57806340a141ff14610518575f5ffd5b80632716c737116103b35780632716c7371461049257806333f9acb4146104a757806336185aa1146104ba5780633777e863146104cd575f5ffd5b806302a21460146103e45780631811f40b146104095780631a4e1e78146104485780631b142ea71461046b575b5f5ffd5b6008545f908152600f60205260409020545b6040519081526020015b60405180910390f35b6104307f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610400565b600854600954610456919082565b60408051928352602083019190915201610400565b6104307f000000000000000000000000000000000000000000000000000000000000000081565b6104a56104a036600461461a565b610a55565b005b6104566104b5366004614646565b610d8f565b6104a56104c8366004614825565b610ebc565b6103f66104db3660046148ed565b610ed7565b610430610efb565b6103f67f000000000000000000000000000000000000000000000000000000000000000081565b6103f660115481565b6104a5610526366004614918565b610f0a565b61053e6105393660046148ed565b610f29565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610400565b6104307f000000000000000000000000000000000000000000000000000000000000000081565b6008546103f6565b6104a56105a8366004614918565b610f7d565b6104a56105bb366004614933565b610f99565b6104a56105ce36600461495e565b611161565b6104a56105e13660046148ed565b61117d565b6104a56105f43660046148ed565b61118a565b610601611197565b6040519015158152602001610400565b61062461061f3660046148ed565b6111a1565b6040516104009190614a02565b6103f661120a565b6104a5611215565b6104a561064f366004614918565b611228565b6103f66106623660046148ed565b611252565b6103f67f000000000000000000000000000000000000000000000000000000000000000081565b6103f660105481565b6103f66106a53660046148ed565b611283565b6106b26112d3565b6040516104009796959493929190614a7b565b6002546001600160a01b0316610430565b6104307f000000000000000000000000000000000000000000000000000000000000000081565b6103f67f000000000000000000000000000000000000000000000000000000000000000081565b610737610732366004614b61565b611315565b6040516104009190614c26565b61062461175d565b61043061075a3660046148ed565b611768565b6104a5611774565b6104a56107753660046148ed565b6117a1565b6103f67f000000000000000000000000000000000000000000000000000000000000000081565b6103f67f000000000000000000000000000000000000000000000000000000000000000081565b6009546103f6565b6104307f000000000000000000000000000000000000000000000000000000000000000081565b6106246117b7565b6103f661080d366004614c4b565b6117c3565b6103f66117d5565b6103f661181e565b6104307f000000000000000000000000000000000000000000000000000000000000000081565b6103f66108573660046148ed565b611828565b6103f6611894565b6104306108723660046148ed565b6118d2565b6104566108853660046148ed565b60056020525f90815260409020600181015460029091015482565b6103f66108ae3660046148ed565b6119be565b6103f66108c13660046148ed565b611a1e565b600a54600b54600c54600d54600e546108ec949392916001600160a01b03908116911685565b604080519586526020860194909452928401919091526001600160a01b03908116606084015216608082015260a001610400565b6103f6611a51565b6106016109363660046148ed565b611a5b565b6104a5611b50565b6104a5610951366004614cb9565b611bbc565b6103f66103e881565b6103f661096d366004614d73565b612136565b6109a06109803660046148ed565b600f6020525f908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610400565b6103f67f000000000000000000000000000000000000000000000000000000000000000081565b6104a56109f0366004614918565b6121b7565b600754610430906001600160a01b031681565b610601610a16366004614918565b6121f1565b6104a5610a29366004614db1565b6121fd565b6103f67f000000000000000000000000000000000000000000000000000000000000000081565b610a91610a6a36839003830160a08401614e3f565b610a7a6080840160608501614918565b610a8c61080d36869003860186614c4b565b6127f1565b5f610a9b83611828565b90505f610aa7846118d2565b90505f610ab2611894565b905082602085013580821115610ae9576040516320a001eb60e01b8152600481019290925260248201526044015b60405180910390fd5b506127109050610aff60a0860160808701614e59565b63ffffffff161115610b1760a0860160808701614e59565b90610b3e57604051632149689b60e11b815263ffffffff9091166004820152602401610ae0565b506001600160a01b0382161580610b5d57506001600160a01b03821633145b82339091610b915760405163681693c760e11b81526001600160a01b03928316600482015291166024820152604401610ae0565b508190508435818114610bc05760405163f0e0744d60e01b815260048101929092526024820152604401610ae0565b50507f0000000000000000000000000000000000000000000000000000000000000000610bec846128c9565b10610bf6846128c9565b7f00000000000000000000000000000000000000000000000000000000000000009091610c3f5760405163e6969f1160e01b815260048101929092526024820152604401610ae0565b5050600a5481141580610c5b5750600e546001600160a01b0316155b610c78576040516316562f8560e11b815260040160405180910390fd5b6103e8604085013581811015610caa576040516350b2f93b60e11b815260048101929092526024820152604401610ae0565b505f90506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663fc7e286d610ced6080880160608901614918565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610d2f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190614e72565b905060408501358180821115610d8557604051634a3c2c5960e01b815260048101929092526024820152604401610ae0565b5050505050505050565b5f5f5f610d9b85611828565b90505f610da786611a5b565b610db357600854610db7565b6009545b5f818152600f60205260409020600201549091508083808210610df65760405163083510bd60e41b815260048101929092526024820152604401610ae0565b50505f828152600f60205260409020548087808214610e3157604051635b41520760e11b815260048101929092526024820152604401610ae0565b5050604080515f8082526020820190925281610e7a565b604080516080810182525f8082526020808301829052928201819052606082015282525f19909201910181610e485790505b506040805180820190915260018082526020820152909150610e9e86838b846128f4565b85610eaa866001614e9d565b975097505050505050505b9250929050565b5f610ec78888612abd565b9050610d85818787878787612e60565b6008545f908211610ef457505f908152600f602052604090205490565b505f919050565b5f610f05426118d2565b905090565b610f12612ea7565b610f1a611b50565b610f25600382612ed4565b5050565b6009545f818152600f60205260408082205460085480845291832054929384938493849384938493909290610f5d8b610ed7565b600954610f6990611283565b949c939b5091995097509550909350915050565b610f85612ea7565b610f8d611b50565b610f9681612ee8565b50565b610fa34282610a55565b5f610fac611a51565b90505f610fb7611894565b90506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631c87b6ac610ff86080860160608701614918565b6040805160e084901b6001600160e01b03191681526001600160a01b03909216600483015286013560248201526044015f604051808303815f87803b15801561103f575f5ffd5b505af1158015611051573d5f5f3e3d5ffd5b505050506040518060a00160405280828152602001845f01608001602081019061107b9190614e59565b63ffffffff16815260408086013560208301520161109f6080860160608701614918565b6001600160a01b0390811682523360209283018190528351600a5591830151600b556040830151600c55606080840151600d80549184166001600160a01b0319928316179055608094850151600e805491909416911617909155909161110a91908601908601614918565b6001600160a01b0316827f04eee47b3fe9e6bcdec9370371d65501f3fb3f44d2fbf49c2b6834635a7253df865f016040013586604051611154929190918252602082015260400190565b60405180910390a4505050565b61116d858585856121fd565b61117681610f99565b5050505050565b611185612ea7565b601055565b611192612ea7565b601155565b5f610f0542611a5b565b5f818152600560209081526040918290208054835181840281018401909452808452606093928301828280156111fe57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116111e0575b50505050509050919050565b5f610f056003612ef3565b61121d612ea7565b6112265f612efc565b565b611230612ea7565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f61127d7f000000000000000000000000000000000000000000000000000000000000000083614ec4565b92915050565b6008545f9082818111156112b35760405163e5edf84760e01b815260048101929092526024820152604401610ae0565b50505f828152600f602052604090206002015461127d906108ae90611a1e565b5f6060805f5f5f60606112e4612f4d565b6112ec612f79565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6009546060905f6113268983614e9d565b5f838152600f6020526040902054909150808935808214611363576040516332a277ed60e01b815260048101929092526024820152604401610ae0565b50505f828152600f60209081526040909120549081908b01358082146113a557604051635b41520760e11b815260048101929092526024820152604401610ae0565b50505f848152600f60205260409020600101548015806113c8575060408b013581145b819060408d0135906113f65760405163beedc8c760e01b815260048101929092526024820152604401610ae0565b50505f848152600f60205260409020600101548060608d01358082146114385760405163353eb95960e01b815260048101929092526024820152604401610ae0565b5050505050505f6010604c61144d9190614e9d565b6001600160401b03811115611464576114646146a3565b60405190808252806020026020018201604052801561148d578160200160208202803683370190505b509050885f6020020135815f815181106114a9576114a9614ed7565b60209081029190910101526114bf836001614e9d565b5f1b816001815181106114d4576114d4614ed7565b60209081029190910101528860016020020135816002815181106114fa576114fa614ed7565b6020908102919091010152611510826001614e9d565b5f1b8160038151811061152557611525614ed7565b602090810291909101015288600260200201358160048151811061154b5761154b614ed7565b602090810291909101015288600360200201358160058151811061157157611571614ed7565b602090810291909101015288600460200201358160068151811061159757611597614ed7565b602002602001018181525050815f1b816007815181106115b9576115b9614ed7565b60209081029190910101528860056020020135816008815181106115df576115df614ed7565b6020026020010181815250505f602060026115fa9190614eeb565b90505f5b818110156116505789898281811061161857611618614ed7565b905060200201358382600961162d9190614e9d565b8151811061163d5761163d614ed7565b60209081029190910101526001016115fe565b505f61165d826009614e9d565b905060105483828151811061167457611674614ed7565b60209081029190910101526011548361168e836001614e9d565b8151811061169e5761169e614ed7565b602090810291909101015260c08b0135836116ba836002614e9d565b815181106116ca576116ca614ed7565b6020026020010181815250505f6020898990506116e79190614ec4565b90505f5b6010811080156116fa57508181105b1561174b57602081028a013580866117128685614e9d565b61171d906003614e9d565b8151811061172d5761172d614ed7565b6020908102919091010152508061174381614f02565b9150506116eb565b50929c9b505050505050505050505050565b6060610f0542612fa6565b5f61127d600383613098565b61177c611197565b6117995760405163850defd360e01b815260040160405180910390fd5b6112266130a3565b6117a9612ea7565b6117b281613116565b601255565b6060610f0560036131ad565b5f61127d6117d0836131b9565b613257565b5f5f6117df611894565b600a54909150811415806117fc5750600d546001600160a01b0316155b611819576040516316562f8560e11b815260040160405180910390fd5b919050565b5f610f05426119be565b5f611852827f00000000000000000000000000000000000000000000000000000000000000001190565b61188d57611888611883837f0000000000000000000000000000000000000000000000000000000000000000613283565b61328e565b61127d565b5f92915050565b6008546009545f9190036118bb5760405163cbaa395160e01b815260040160405180910390fd5b610f056118c760095490565b6106a5906001614e9d565b5f5f6118dd836119be565b90505f6118e984611828565b5f8381526005602052604090206001810154919250901561195a5780545f81900361191957505f95945050505050565b815f0161192c85858560010154856132b9565b8154811061193c5761193c614ed7565b5f918252602090912001546001600160a01b03169695505050505050565b6119646003612ef3565b5f0361197457505f949350505050565b5f61197e846132fa565b90505f61198a8261335f565b90508061199a86868585516132b9565b815181106119aa576119aa614ed7565b602002602001015195505050505050919050565b5f6119e8827f00000000000000000000000000000000000000000000000000000000000000001190565b61188d57611888611a19837f0000000000000000000000000000000000000000000000000000000000000000613283565b6134d7565b5f61127d7f0000000000000000000000000000000000000000000000000000000000000000611a4c8461352c565b613557565b5f610f0542611828565b6009546008545f911480611a73575060125460085411155b15611a7f57505f919050565b5f611a8983611828565b90505f611aa160086001015460016106a59190614e9d565b90505f611aad82613562565b90505f611aef84611aeb611ac585611a4c6001613562565b7f0000000000000000000000000000000000000000000000000000000000000000613557565b1190565b90505f611b0485611aeb85611a4c6002613562565b8015611b115750600a5484145b8015611b275750600e546001600160a01b031615155b90508180611b325750805b15611b4357505f9695505050505050565b5060019695505050505050565b5f611b5961181e565b5f8181526005602052604081206001810154929350919003610f2557611b7e826132fa565b6001820155611b8c8261358d565b600681905560028201556001810154611ba49061335f565b8051611bb791839160209091019061443c565b505050565b611bc4611197565b15611bd157611bd16130a3565b6009545f611bdf8a83614e9d565b90505f611beb82611283565b90505f611bfc8c8c8c8c8c8c611315565b600754604051633a94343960e21b81529192506001600160a01b03169063ea50d0e490611c3190899089908690600401614f42565b602060405180830381865afa158015611c4c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c709190614f71565b611c8d5760405163a5b2ba1760e01b815260040160405180910390fd5b826008600101819055505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cf4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d189190614f8c565b6001600160a01b0316306001600160a01b03161490505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d8b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611daf9190614f8c565b6001600160a01b0316301490505f8280611dc65750815b15612065575f5b8f811015612000575f85611de2836002614eeb565b611ded906009614e9d565b81518110611dfd57611dfd614ed7565b602090810291909101015190505f808615611ed9575f88611e1f866002614eeb565b611e2a90600a614e9d565b81518110611e3a57611e3a614ed7565b60200260200101515f1c90505f811115611ed757611e588184614e9d565b6040516348fef59560e01b8152306004820152602481018390529093507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348fef595906044015f604051808303815f87803b158015611ec0575f5ffd5b505af1158015611ed2573d5f5f3e3d5ffd5b505050505b505b8515611f7357604051630f41a04d60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631e83409a906024016020604051808303815f875af1158015611f42573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f669190614e72565b611f709083614e9d565b91505b6001600160a01b038316611f88575080611f9d565b611f9a82600a600101546127106135c8565b90505b5f611fa88284614fa7565b90508015611fe457611fe46001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016858361367e565b611fee8287614e9d565b95505060019093019250611dcd915050565b50801561206557600d545f906001600160a01b03161561202b57600d546001600160a01b031661202d565b335b90506120636001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016828461367e565b505b600a5485036120f557600d54600c546040516302c865e360e41b81526001600160a01b03928316600482015260248101919091527f000000000000000000000000000000000000000000000000000000000000000090911690632c865e30906044015f604051808303815f87803b1580156120de575f5ffd5b505af11580156120f0573d5f5f3e3d5ffd5b505050505b60405160c08f01359087907fd989775bfca9340a9fcb6a458bef402a5defb0d44211ee8d61a5974e9ad7379b905f90a3505050505050505050505050505050565b60405163e5c5e9a360e01b81525f9073__$bd4735397c9654ec5109019d55c6931403$__9063e5c5e9a3906121719086908690600401614fba565b602060405180830381865af415801561218c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121b09190614e72565b9392505050565b6121bf612ea7565b6001600160a01b0381166121e857604051631e4fbdf760e01b81525f6004820152602401610ae0565b610f9681612efc565b5f61127d6003836136d0565b612205611197565b15612212576122126130a3565b60405163e5c5e9a360e01b81525f9073__$bd4735397c9654ec5109019d55c6931403$__9063e5c5e9a39061224d9086908690600401614fba565b602060405180830381865af4158015612268573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061228c9190614e72565b90505f6122a461229f6040880188614fcd565b612abd565b90505f6122b86122b38861506a565b6136f1565b90506122c2611b50565b6122e8828783428760405180604001604052805f151581526020015f1515815250612e60565b5f60085f015f81546122f990614f02565b918290555060408051606080820183528b3582526020808d013581840190815288830151909201518385019081525f868152600f90925284822093518455915160018401559051600290920191909155905163483f31ab60e01b815260048101839052919250907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063483f31ab906024016020604051808303815f875af11580156123b0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d49190614e72565b602085015160400151909150819080821461240b5760405163cd6f423360e01b815260048101929092526024820152604401610ae0565b50505f61241e85602001515f0151613706565b5090505f61242d826001614e9d565b602087015160600151604051633d96c2c960e01b8152600481018790526024810191909152604481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633d96c2c9906064015f604051808303815f87803b1580156124a7575f5ffd5b505af11580156124b9573d5f5f3e3d5ffd5b50506040518d3592508691507fa181a71286cf34ab6e15a04aec6411ea404897f2cdc5e246558a49dc92fd8fe4905f90a360125484116127e4576124fc84613116565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612559573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061257d9190614f8c565b6001600160a01b0316306001600160a01b03161490505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125f0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126149190614f8c565b6001600160a01b0316306001600160a01b03161490508180156126475750606088015160a001516001600160a01b031615155b801561265657505f8860800151115b156126f557606088015160a0015160808901516040516348fef59560e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926348fef595926126c7926004016001600160a01b03929092168252602082015260400190565b5f604051808303815f87803b1580156126de575f5ffd5b505af11580156126f0573d5f5f3e3d5ffd5b505050505b8080156127125750606088015160a001516001600160a01b031615155b156127ad57606088015160a00151604051630f41a04d60e11b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690631e83409a906024016020604051808303815f875af1158015612787573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127ab9190614e72565b505b6040516410d211505560da1b9087907fd989775bfca9340a9fcb6a458bef402a5defb0d44211ee8d61a5974e9ad7379b905f90a350505b5050505050505050505050565b8251156128115760405163c7690a3760e01b815260040160405180910390fd5b60208084015160408086015160608088015183515f80825296810180865288905260ff90951693850193909352830152608082015260019060a0016020604051602081039080840390855afa15801561286c573d5f5f3e3d5ffd5b505050602060405103519050806001600160a01b0316836001600160a01b031614838290916128c157604051633672eb9b60e21b81526001600160a01b03928316600482015291166024820152604401610ae0565b505050505050565b5f61127d7f000000000000000000000000000000000000000000000000000000000000000083615143565b5f6128fe85611a1e565b90505f61290a826118d2565b90506001600160a01b038116612921575050612ab7565b80336001600160a01b038216811461295f5760405163681693c760e11b81526001600160a01b03928316600482015291166024820152604401610ae0565b5050826020015115612972575050612ab7565b5f61297c83612fa6565b90505f60038251600261298f9190614eeb565b6129999190614ec4565b6129a4906001614e9d565b87519091508190818110156129d5576040516359d34be160e11b815260048101929092526024820152604401610ae0565b50507f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c879052603c81205f5b8951811015612a81575f8a8281518110612a2357612a23614ed7565b60200260200101519050805f015115612a3c5750612a79565b612a6a868381518110612a5157612a51614ed7565b602002602001015184836127f19092919063ffffffff16565b83612a7481614f02565b945050505b600101612a07565b50828281811015612aae5760405163bf1ca4cb60e01b815260048101929092526024820152604401610ae0565b50505050505050505b50505050565b612ac561449f565b61026882808214612af25760405163f3ccb24760e01b815260048101929092526024820152604401610ae0565b5050612afc61449f565b6040805180820190915280612b1460205f8789615156565b612b1d9161517d565b8152602090810190612b33906024908789615156565b612b3c9161519a565b60e01c90528152612b51604460248587615156565b612b5a9161517d565b602082015152612b6e606460448587615156565b612b779161517d565b6020808301510152612b8d608460648587615156565b612b969161517d565b602082015160400152612bad60a460848587615156565b612bb69161517d565b6020820151606001526040805180820190915280612bd860c460a48789615156565b612be19161517d565b8152602001612bf460c860c48789615156565b612bfd9161519a565b60e01c905260408083015191909152805180820190915280612c2360e860c88789615156565b612c2c9161517d565b8152602001612c3f60ec60e88789615156565b612c489161519a565b60e01c90526040808301516020015191909152805180820190915280612c7361010c60ec8789615156565b612c7c9161517d565b8152602001612c9161011061010c8789615156565b612c9a9161519a565b60e01c90526040808301516020908101510191909152805180820190915280612cc96101306101108789615156565b612cd29161517d565b8152602001612ce76101346101308789615156565b612cf09161519a565b60e01c905260408201516020015160600152612d126101546101348587615156565b612d1b9161517d565b606082015152612d316101746101548587615156565b612d3a9161517d565b606082015160200152612d536101946101748587615156565b612d5c9161517d565b606082015160400152612d756101b46101948587615156565b612d7e9161517d565b6060808301510152612d966101d46101b48587615156565b612d9f9161517d565b606082015160800152612db86101e86101d48587615156565b612dc1916151d0565b60608281015191901c60a090910152612de06102086101e88587615156565b612de99161517d565b606082015160c00152612e026102286102088587615156565b612e0b9161517d565b606082015160e0015152612e256102486102288587615156565b612e2e9161517d565b606082015160e0015160200152612e4b6102686102488587615156565b612e549161517d565b60808201529392505050565b5f612e6a84611a5b565b612e7657600854612e7a565b6009545b9050612e8987858584866137e9565b612e9e87606001516060015187878786613afe565b50505050505050565b6002546001600160a01b031633146112265760405163118cdaa760e01b8152336004820152602401610ae0565b5f6121b0836001600160a01b038416613b8b565b610f25600382613c75565b5f61127d825490565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6060610f057f00000000000000000000000000000000000000000000000000000000000000005f613c89565b6060610f057f00000000000000000000000000000000000000000000000000000000000000006001613c89565b60605f612fb2836119be565b5f818152600560205260409020600181015491925090156130505780545f819003612ff257604080515f80825260208201909252905b5095945050505050565b81546040805160208084028201810190925282815291849183018282801561304157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311613023575b50505050509350505050919050565b61305a6003612ef3565b5f0361307a57604080515f80825260208201909252905b50949350505050565b5f613084836132fa565b905061308f8161335f565b95945050505050565b5f6121b08383613d32565b5f600a819055600b819055600c55600d80546001600160a01b0319908116909155600e805490911690556008805460095491829055604080519283526020830182905290917fc78a70f3b27748d5fa327f6a3c1104b9b007d6a80d20c41f7c0dc4543fbdbdcd910160405180910390a150565b6009548111801561312957506008548111155b15610f965760098190555f61313d82611283565b905080158061314d5750600a5481115b15610f25576040805160a0810182528281525f6020820181905291810182905260608101829052336080909101819052600a92909255600b819055600c55600d80546001600160a01b0319908116909155600e8054909116909117905550565b60605f6121b083613d58565b5f7f87ad602ba7da8fbd0870ea16b81fedb3d066c92bd5549f066c4512db6b28fb9d825f0151836020015184604001518560600151866080015160405160200161323a969594939291909586526020860194909452604085019290925260608401526001600160a01b0316608083015263ffffffff1660a082015260c00190565b604051602081830303815290604052805190602001209050919050565b5f61127d613263613db0565b8360405161190160f01b8152600281019290925260228201526042902090565b5f6121b08284614fa7565b5f61127d7f000000000000000000000000000000000000000000000000000000000000000083614ec4565b6040805160208101869052908101849052606081018390525f908290608001604051602081830303815290604052805190602001205f1c61308f9190615143565b5f815f0361330a57505f19919050565b5f8281526005602052604090206001015480156133275792915050565b60055f613335856001613283565b81526020019081526020015f20600201549050805f146133555792915050565b5050600654919050565b60605f61336c6003612ef3565b9050805f0361338a575050604080515f815260208101909152919050565b7f000000000000000000000000000000000000000000000000000000000000000081116133bb576121b060036131ad565b5f6133e77f00000000000000000000000000000000000000000000000000000000000000008386613ed9565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115613422576134226146a3565b60405190808252806020026020018201604052801561344b578160200160208202803683370190505b5090505f5b7f0000000000000000000000000000000000000000000000000000000000000000811015613071576134a583828151811061348d5761348d614ed7565b6020026020010151600361309890919063ffffffff16565b8282815181106134b7576134b7614ed7565b6001600160a01b0390921660209283029190910190910152600101613450565b5f6135227f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614eeb565b61127d9083614ec4565b5f61127d7f000000000000000000000000000000000000000000000000000000000000000083614eeb565b5f6121b08284614e9d565b5f61127d7f000000000000000000000000000000000000000000000000000000000000000083614eeb565b5f81446040516020016135aa929190918252602082015260400190565b60408051601f19818403018152919052805160209091012092915050565b5f838302815f1985870982811083820303915050805f036135fc578382816135f2576135f2614eb0565b04925050506121b0565b808411613613576136136003851502601118613f5f565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611bb7908490613f70565b6001600160a01b0381165f90815260018301602052604081205415156121b0565b5f60018260405160200161323a929190615210565b5f5f5f60028410613717578361371a565b60025b90505f60018180805b851561379c578584165f0361374b5760019390931b928261374381614f02565b935050613723565b845f036137555750815b61375f8487614fa7565b5f03613769578291505b6137738487614fa7565b955060019390931b928261378681614f02565b935050848061379490614f02565b955050613723565b846001036137b257509788975095505050505050565b5f60016137bf8784614e9d565b6137c99190614fa7565b90505f6137d7846001614e9d565b919b919a509098505050505050505050565b606085015151469081811461381a57604051631bdade0960e11b815260048101929092526024820152604401610ae0565b50506060850151602001517f000000000000000000000000000000000000000000000000000000000000000090808214613870576040516327bcc1e560e21b815260048101929092526024820152604401610ae0565b5061387e9050826001614e9d565b60608601516040015114613893836001614e9d565b86606001516040015190916138c45760405163e5edf84760e01b815260048101929092526024820152604401610ae0565b50505f828152600f6020526040902054855151819080821461390257604051635b41520760e11b815260048101929092526024820152604401610ae0565b505060608681015101515f848152600f602052604090206002015480828082106139485760405163083510bd60e41b815260048101929092526024820152604401610ae0565b50505f61395483611a1e565b9050613967896060015160800151821490565b60608a015160800151829161399857604051633132e89560e01b815260048101929092526024820152604401610ae0565b5088905081808210156139c75760405163089f306960e41b815260048101929092526024820152604401610ae0565b50508451806139dd575086896020015160200151145b89602001516020015190613a075760405163414906c360e01b8152600401610ae091815260200190565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a64573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a889190614f8c565b6001600160a01b0316306001600160a01b031614613af357606089015160e001515115613ac857604051636ce3afa960e11b815260040160405180910390fd5b606089015160e001516020015115613af357604051631f9ca2af60e21b815260040160405180910390fd5b505050505050505050565b5f613b0883611828565b90508086808214613b35576040516309ba91ff60e01b815260048101929092526024820152604401610ae0565b50505f613b446108ae88611a1e565b90505f613b50856119be565b90508082808214613b7d57604051631e36b2f360e11b815260048101929092526024820152604401610ae0565b5050610d85888888876128f4565b5f8181526001830160205260408120548015613c65575f613bad600183614fa7565b85549091505f90613bc090600190614fa7565b9050808214613c1f575f865f018281548110613bde57613bde614ed7565b905f5260205f200154905080875f018481548110613bfe57613bfe614ed7565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080613c3057613c3061527d565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061127d565b5f91505061127d565b5092915050565b5f6121b0836001600160a01b038416613fdc565b606060ff8314613ca357613c9c83614028565b905061127d565b818054613caf90615291565b80601f0160208091040260200160405190810160405280929190818152602001828054613cdb90615291565b8015613d265780601f10613cfd57610100808354040283529160200191613d26565b820191905f5260205f20905b815481529060010190602001808311613d0957829003601f168201915b5050505050905061127d565b5f825f018281548110613d4757613d47614ed7565b905f5260205f200154905092915050565b6060815f018054806020026020016040519081016040528092919081815260200182805480156111fe57602002820191905f5260205f20905b815481526020019060010190808311613d915750505050509050919050565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613e0857507f000000000000000000000000000000000000000000000000000000000000000046145b15613e3257507f000000000000000000000000000000000000000000000000000000000000000090565b610f05604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60605f846001600160401b03811115613ef457613ef46146a3565b604051908082528060200260200182016040528015613f1d578160200160208202803683370190505b5090505f5b85811015613071575f613f36828787614065565b905080838381518110613f4b57613f4b614ed7565b602090810291909101015250600101613f22565b634e487b715f52806020526024601cfd5b5f5f60205f8451602086015f885af180613f8f576040513d5f823e3d81fd5b50505f513d91508115613fa6578060011415613fb3565b6001600160a01b0384163b155b15612ab757604051635274afe760e01b81526001600160a01b0385166004820152602401610ae0565b5f81815260018301602052604081205461402157508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561127d565b505f61127d565b60605f614034836140ed565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f83838082106140915760405163a12fc55960e01b815260048101929092526024820152604401610ae0565b50505f61409d84614114565b905084815b8015612fe8575f6140be866140b8600185614fa7565b896142dc565b90506140d78682856140d1600187614fa7565b8b614331565b92505080806140e5906152c3565b9150506140a2565b5f60ff8216601f81111561127d57604051632cd44ac360e21b815260040160405180910390fd5b604080517ff8f9cbfae6cc78fbefe7cdc3a1793dfcf4f0e8bbd8cec470b6a28a7a5a3e1efd81527ff5ecf1b3e9debc68e1d9cfabc5997135bfb7a7a3938b7b606b5b4b3f2f1f0ffe60208201527ff6e4ed9ff2d6b458eadcdf97bd91692de2d4da8fd2d0ac50c6ae9a8272523616818301527fc8c0b887b0a8a4489c948c7f847c6125746c645c544c444038302820181008ff60608201527ff7cae577eec2a03cf3bad76fb589591debb2dd67e0aa9834bea6925f6a4a2e0e60808201527fe39ed557db96902cd38ed14fad815115c786af479b7e8324736353433727170760a08201527fc976c13bb96e881cb166a933a55e490d9d56952b8d4e801485467d236242260660c08201527f753a6d1b65325d0c552a4d1345224105391a310b29122104190a11030902010060e0820152610100808201909252600160f81b7e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff600160801b68010000000000000000640100000000620100006010600460025f198c0190810417908104179081041788810417908104179081041790810417908104176001010281900460ff03909101515f92600160ff1b8511029190040161127d906004614eeb565b5f81848460405160200161430792919091825260f81b6001600160f81b031916602082015260210190565b604051602081830303815290604052805190602001205f1c6143299190615143565b949350505050565b5f80828561433f8289614e9d565b6143499190614fa7565b6143539190615143565b90505f8186116143635781614365565b855b90505f888661437661010085614ec4565b6040516020016143b39392919092835260f89190911b6001600160f81b031916602083015260e01b6001600160e01b031916602182015260250190565b6040516020818303038152906040528051906020012090505f816008610100856143dd9190615143565b6143e79190614ec4565b602081106143f7576143f7614ed7565b1a90505f6002614408600886615143565b8360ff16901c61441891906152d8565b90508060ff1660011461442b578861442d565b845b9b9a5050505050505050505050565b828054828255905f5260205f2090810192821561448f579160200282015b8281111561448f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061445a565b5061449b92915061450e565b5090565b6040805160e081019091525f60a0820181815260c0830191909152819081526020016144e860405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020016144f5614522565b81526020016145026145a9565b81526020015f81525090565b5b8082111561449b575f815560010161450f565b604080516080810182525f9181018281526060820192909252908152602081016145a46040805160c0810182525f6080820181815260a083018290528252825180840184528181526020808201839052808401919091528351808501855282815280820183905283850152835180850190945281845283015290606082015290565b905290565b6040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f81526020016145a460405180604001604052805f81526020015f81525090565b5f6101208284031215614614575f5ffd5b50919050565b5f5f610140838503121561462c575f5ffd5b8235915061463d8460208501614603565b90509250929050565b5f5f60408385031215614657575f5ffd5b50508035926020909101359150565b5f5f83601f840112614676575f5ffd5b5081356001600160401b0381111561468c575f5ffd5b602083019150836020828501011115610eb5575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156146d9576146d96146a3565b60405290565b604080519081016001600160401b03811182821017156146d9576146d96146a3565b604051601f8201601f191681016001600160401b0381118282101715614729576147296146a3565b604052919050565b5f6001600160401b03821115614749576147496146a3565b5060051b60200190565b8015158114610f96575f5ffd5b5f60808284031215614770575f5ffd5b6147786146b7565b9050813561478581614753565b8152602082013560ff8116811461479a575f5ffd5b60208201526040828101359082015260609182013591810191909152919050565b5f82601f8301126147ca575f5ffd5b81356147dd6147d882614731565b614701565b8082825260208201915060208360071b8601019250858311156147fe575f5ffd5b602085015b83811015612fe8576148158782614760565b8352602090920191608001614803565b5f5f5f5f5f5f5f87890360e081121561483c575f5ffd5b88356001600160401b03811115614851575f5ffd5b61485d8b828c01614666565b90995097505060208901356001600160401b0381111561487b575f5ffd5b6148878b828c016147bb565b965050604089810135955060608a0135945060808a01359350609f19820112156148af575f5ffd5b506148b86146df565b60a08901356148c681614753565b815260c08901356148d681614753565b806020830152508091505092959891949750929550565b5f602082840312156148fd575f5ffd5b5035919050565b6001600160a01b0381168114610f96575f5ffd5b5f60208284031215614928575f5ffd5b81356121b081614904565b5f6101208284031215614944575f5ffd5b6121b08383614603565b5f60808284031215614614575f5ffd5b5f5f5f5f5f6101808688031215614973575f5ffd5b85356001600160401b03811115614988575f5ffd5b6149948882890161494e565b95505060208601356001600160401b038111156149af575f5ffd5b6149bb888289016147bb565b94505060408601356001600160401b038111156149d6575f5ffd5b6149e288828901614666565b90945092506149f690508760608801614603565b90509295509295909350565b602080825282518282018190525f918401906040840190835b81811015614a425783516001600160a01b0316835260209384019390920191600101614a1b565b509095945050505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e060208201525f614a9960e0830189614a4d565b8281036040840152614aab8189614a4d565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015614b00578351835260209384019390920191600101614ae2565b50909b9a5050505050505050505050565b8060e0810183101561127d575f5ffd5b5f5f83601f840112614b31575f5ffd5b5081356001600160401b03811115614b47575f5ffd5b6020830191508360208260051b8501011115610eb5575f5ffd5b5f5f5f5f5f5f6101408789031215614b77575f5ffd5b86359550614b888860208901614b11565b94506101008701356001600160401b03811115614ba3575f5ffd5b614baf89828a01614b21565b9095509350506101208701356001600160401b03811115614bce575f5ffd5b614bda89828a01614666565b979a9699509497509295939492505050565b5f8151808452602084019350602083015f5b82811015614c1c578151865260209586019590910190600101614bfe565b5093949350505050565b602081525f6121b06020830184614bec565b803563ffffffff81168114611819575f5ffd5b5f60a0828403128015614c5c575f5ffd5b5060405160a081016001600160401b0381118282101715614c7f57614c7f6146a3565b6040908152833582526020808501359083015283810135908201526060830135614ca881614904565b6060820152612e5460808401614c38565b5f5f5f5f5f5f5f5f610160898b031215614cd1575f5ffd5b88359750614ce28a60208b01614b11565b96506101008901356001600160401b03811115614cfd575f5ffd5b614d098b828c01614b21565b9097509550506101208901356001600160401b03811115614d28575f5ffd5b614d348b828c01614666565b9095509350506101408901356001600160401b03811115614d53575f5ffd5b614d5f8b828c01614666565b999c989b5096995094979396929594505050565b5f5f60208385031215614d84575f5ffd5b82356001600160401b03811115614d99575f5ffd5b614da585828601614666565b90969095509350505050565b5f5f5f5f60608587031215614dc4575f5ffd5b84356001600160401b03811115614dd9575f5ffd5b614de58782880161494e565b94505060208501356001600160401b03811115614e00575f5ffd5b614e0c878288016147bb565b93505060408501356001600160401b03811115614e27575f5ffd5b614e3387828801614666565b95989497509550505050565b5f60808284031215614e4f575f5ffd5b6121b08383614760565b5f60208284031215614e69575f5ffd5b6121b082614c38565b5f60208284031215614e82575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561127d5761127d614e89565b634e487b7160e01b5f52601260045260245ffd5b5f82614ed257614ed2614eb0565b500490565b634e487b7160e01b5f52603260045260245ffd5b808202811582820484141761127d5761127d614e89565b5f60018201614f1357614f13614e89565b5060010190565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b604081525f614f55604083018587614f1a565b8281036020840152614f678185614bec565b9695505050505050565b5f60208284031215614f81575f5ffd5b81516121b081614753565b5f60208284031215614f9c575f5ffd5b81516121b081614904565b8181038181111561127d5761127d614e89565b602081525f614329602083018486614f1a565b5f5f8335601e19843603018112614fe2575f5ffd5b8301803591506001600160401b03821115614ffb575f5ffd5b602001915036819003821315610eb5575f5ffd5b5f82601f83011261501e575f5ffd5b813561502c6147d882614731565b8082825260208201915060208360051b86010192508583111561504d575f5ffd5b602085015b83811015612fe8578035835260209283019201615052565b5f6080823603121561507a575f5ffd5b6150826146b7565b823581526020808401359082015260408301356001600160401b038111156150a8575f5ffd5b830136601f8201126150b8575f5ffd5b80356001600160401b038111156150d1576150d16146a3565b6150e4601f8201601f1916602001614701565b8181523660208385010111156150f8575f5ffd5b816020840160208301375f6020838301015280604085015250505060608301356001600160401b0381111561512b575f5ffd5b6151373682860161500f565b60608301525092915050565b5f8261515157615151614eb0565b500690565b5f5f85851115615164575f5ffd5b83861115615170575f5ffd5b5050820193919092039150565b8035602083101561127d575f19602084900360031b1b1692915050565b80356001600160e01b03198116906004841015613c6e576001600160e01b031960049490940360031b84901b1690921692915050565b80356bffffffffffffffffffffffff198116906014841015613c6e576bffffffffffffffffffffffff1960149490940360031b84901b1690921692915050565b5f6002841061522d57634e487b7160e01b5f52602160045260245ffd5b838252604060208301528251604083015260208301516060830152604083015160808084015261526060c0840182614a4d565b90506060840151603f198483030160a0850152614f678282614bec565b634e487b7160e01b5f52603160045260245ffd5b600181811c908216806152a557607f821691505b60208210810361461457634e487b7160e01b5f52602260045260245ffd5b5f816152d1576152d1614e89565b505f190190565b5f60ff8316806152ea576152ea614eb0565b8060ff8416069150509291505056fea2646970667358221220f44008f330c73f1f8020e9008acf99481565c7d49c668e9dee64851d101d0df764736f6c634300081b00336080604052348015600e575f5ffd5b506101578061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004561003b366004610059565b6001949350505050565b604051901515815260200160405180910390f35b5f5f5f5f6040858703121561006c575f5ffd5b843567ffffffffffffffff811115610082575f5ffd5b8501601f81018713610092575f5ffd5b803567ffffffffffffffff8111156100a8575f5ffd5b8760208284010111156100b9575f5ffd5b60209182019550935085013567ffffffffffffffff8111156100d9575f5ffd5b8501601f810187136100e9575f5ffd5b803567ffffffffffffffff8111156100ff575f5ffd5b8760208260051b8401011115610113575f5ffd5b94979396506020019450505056fea2646970667358221220b347706a3dc7f76b5cbd0f02b652482a8592c3334d7013c40fe86559709bd69964736f6c634300081b003360e060405234801561000f575f5ffd5b50604051610a14380380610a1483398101604081905261002e9161006f565b6001600160a01b0380841660a052841660c05261004b81836100b4565b608052506100dd92505050565b6001600160a01b038116811461006c575f5ffd5b50565b5f5f5f5f60808587031215610082575f5ffd5b845161008d81610058565b602086015190945061009e81610058565b6040860151606090960151949790965092505050565b80820281158282048414176100d757634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c0516108dd6101375f395f818161016a015281816101fb0152818161046b015261065e01525f81816101a9015281816102e001526103ab01525f818160e001528181610248015261053e01526108dd5ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80639611c5c21161006e5780639611c5c2146101a4578063b6b55f25146101cb578063c60d588d146101de578063f8fd9795146101f1578063fc0c546a146101f9578063fc7e286d1461021f575f5ffd5b806308b4af71146100b55780630d5e5fff146100db5780631c87b6ac146101025780632c865e301461011757806352df49ec1461012a57806382bfefc814610165575b5f5ffd5b6100c86100c33660046107e4565b61023e565b6040519081526020015b60405180910390f35b6100c87f000000000000000000000000000000000000000000000000000000000000000081565b61011561011036600461080e565b6102d5565b005b61011561012536600461080e565b6103a0565b610150610138366004610836565b600160208190525f9182526040909120805491015482565b604080519283526020830191909152016100d2565b61018c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d2565b61018c7f000000000000000000000000000000000000000000000000000000000000000081565b6101156101d9366004610856565b61045e565b6101156101ec366004610856565b6104ef565b6101156105bf565b7f000000000000000000000000000000000000000000000000000000000000000061018c565b6100c861022d366004610836565b5f6020819052908152604090205481565b5f6102728361026d7f000000000000000000000000000000000000000000000000000000000000000042610881565b111590565b1561027e57505f6102cf565b6001600160a01b0382165f90815260208181526040808320546001928390529220015484106102cc576001600160a01b0383165f908152600160205260409020546102c99082610894565b90505b90505b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811461033057604051632ac332c160e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b506001600160a01b0382165f9081526020819052604081208054839290610358908490610894565b90915550506040518181526001600160a01b038316907f8c2455f4b82f1285751e0f21f0cda7612aa81cf700ab606c3e2250253ff1e400906020015b60405180910390a25050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681146103f657604051632ac332c160e01b81526001600160a01b039091166004820152602401610327565b506001600160a01b0382165f908152602081905260408120805483929061041e908490610881565b90915550506040518181526001600160a01b038316907f6567969aa8387adeedb0b23fd1b47a09157bfb8fdb2a11e8b1c03b8b0e78b48f90602001610394565b6104936001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846106ba565b335f90815260208190526040812080548392906104b1908490610881565b909155505060405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c906020015b60405180910390a250565b335f908152602081905260409020548180821015610529576040516309b8b78960e01b815260048101929092526024820152604401610327565b505060405180604001604052808281526020017f0000000000000000000000000000000000000000000000000000000000000000426105689190610881565b9052335f818152600160208181526040928390208551815594015193018390555190917f9d22371eec6fd87e081855b42b28f152e79799fa5a89bf4e30f8acf26d29ed95916104e491858252602082015260400190565b335f90815260016020818152604092839020835180850190945280548452909101549082018190524290808210156106135760405163b32ab8a760e01b815260048101929092526024820152604401610327565b5050335f908152600160208181526040808420848155909201839055835190839052908220805491929091610649908490610894565b90915550508051610686906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016903390610727565b805160405190815233907fa5b1c510c6d1fc318ad8a59c08331317c170ad7f42e0bff2ece9b32d0feb6859906020016104e4565b6040516001600160a01b0384811660248301528381166044830152606482018390526107219186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061075d565b50505050565b6040516001600160a01b0383811660248301526044820183905261075891859182169063a9059cbb906064016106ef565b505050565b5f5f60205f8451602086015f885af18061077c576040513d5f823e3d81fd5b50505f513d915081156107935780600114156107a0565b6001600160a01b0384163b155b1561072157604051635274afe760e01b81526001600160a01b0385166004820152602401610327565b80356001600160a01b03811681146107df575f5ffd5b919050565b5f5f604083850312156107f5575f5ffd5b82359150610805602084016107c9565b90509250929050565b5f5f6040838503121561081f575f5ffd5b610828836107c9565b946020939093013593505050565b5f60208284031215610846575f5ffd5b61084f826107c9565b9392505050565b5f60208284031215610866575f5ffd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102cf576102cf61086d565b818103818111156102cf576102cf61086d56fea2646970667358221220834998b94c7a0f64ed8b89e8fb63d57c3a0bf4939e97a603a1c5e543fc3680a364736f6c634300081b0033610100604052610010600180610375565b5f555f600355348015610021575f5ffd5b50604051610f77380380610f7783398101604081905261004091610388565b6001600160a01b03821660805260a081905261005d8160026104a2565b60c05261006b600182610099565b60a05160c0515f8054815260026020526040902061008e92909160019190610142565b60e0525061055c9050565b5f8080526020839052604081205560015b81811161013d5761011d835f6100c16001856104b4565b81526020019081526020015f2054845f015f6001856100e091906104b4565b81526020019081526020015f2054604051602001610108929190918252602082015260400190565b60408051601f1981840301815291905261029b565b5f8281526020859052604090205580610135816104c7565b9150506100aa565b505050565b83545f908082036101625750505f82815260208490526040902054610293565b8281036101805750505f828152600185016020526040902054610293565b5f61018c6001836104b4565b90505f61019882610336565b5f81815260018a01602052604090205490915082821c825b8881101561028a57600180831614801561024f575f82815260018d01602052604090205484900361021c5760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b604482015260640160405180910390fd5b5f82815260018d0160209081526040918290205482519182015290810185905261024890606001610108565b935061027d565b5f82815260208c815260409182902054915161027a9261010892889201918252602082015260400190565b93505b50600191821c91016101b0565b50909450505050505b949350505050565b6040805160018082528183019092525f91602082018180368337019050506002836040516102c991906104f6565b602060405180830381855afa1580156102e4573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906103079190610501565b604051602001610318929190610518565b60405160208183030381529060405261033090610536565b92915050565b5f80825b8060011660010361035a578161034f816104c7565b92505060011c61033a565b5092915050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561033057610330610361565b5f5f60408385031215610399575f5ffd5b82516001600160a01b03811681146103af575f5ffd5b6020939093015192949293505050565b6001815b60018411156103fa578085048111156103de576103de610361565b60018416156103ec57908102905b60019390931c9280026103c3565b935093915050565b5f8261041057506001610330565b8161041c57505f610330565b8160018114610432576002811461043c57610458565b6001915050610330565b60ff84111561044d5761044d610361565b50506001821b610330565b5060208310610133831016604e8410600b841016171561047b575081810a610330565b6104875f1984846103bf565b805f190482111561049a5761049a610361565b029392505050565b5f6104ad8383610402565b9392505050565b8181038181111561033057610330610361565b5f600182016104d8576104d8610361565b5060010190565b5f81518060208401855e5f93019283525090919050565b5f6104ad82846104df565b5f60208284031215610511575f5ffd5b5051919050565b5f61052382856104df565b60ff199390931683525050601f01919050565b80516020808301519190811015610556575f198160200360031b1b821691505b50919050565b60805160a05160c05160e0516109c56105b25f395f6103ed01525f8181610240015281816102920152818161044b01526104d701525f818161042a01526104b601525f8181610101015261038c01526109c55ff3fe608060405234801561000f575f5ffd5b506004361061007a575f3560e01c80637a508022116100585780637a508022146100d557806387351813146100f45780639611c5c2146100fc5780639b24b3b01461013b575f5ffd5b8063086dc8d41461007e5780631f6d510b1461009a578063483f31ab146100c2575b5f5ffd5b61008760035481565b6040519081526020015b60405180910390f35b6100ad6100a8366004610813565b61014e565b60408051928352602083019190915201610091565b6100876100d036600461088b565b610380565b6100876100e336600461088b565b60026020525f908152604090205481565b6100875f5481565b6101237f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610091565b61008761014936600461088b565b6104a1565b82515f9081907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008111156101a1576040516353bb503760e11b815260040161019891815260200190565b60405180910390fd5b50837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008111156101e7576040516311d1480560e21b815260040161019891815260200190565b50827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000081111561022d57604051633b379f8b60e21b815260040161019891815260200190565b505f8054815260026020526040902080547f00000000000000000000000000000000000000000000000000000000000000000361028b5760015f5f82825461027591906108b6565b90915550505f8054815260026020526040902090505b5f815f01547f000000000000000000000000000000000000000000000000000000000000000060015f546102bf91906108c9565b6102c991906108dc565b6102d391906108b6565b6040805160e0810182523360a082019081524660c08301528152602081018a905290810188905260608101879052608081018290529091505f610315826104fb565b9050610321848261057d565b5060038054905f610331836108f3565b9190505550805f547f1f0faf82fa8c7b10dd392417c6976d0ed764deb80fb07211d5928c2944ddb80d8560405161036a91815260200190565b60405180910390a3989197509095505050505050565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103ca5760405163e5336a6b60e01b815260040160405180910390fd5b5f5482106103eb5760405163c490199960e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001831115610472575f83815260026020526040902061046f9060017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006105fe565b90505b5f5461047f8460016108b6565b0361049b5760015f5f82825461049591906108b6565b90915550505b92915050565b5f81815260026020526040812061049b9060017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006105fe565b5f61049b825f0151836020015184604001518560600151866080015160405160200161056995949392919085516001600160a01b03168152602095860151868201528451604082015293909401516060840152608083019190915260a082015260c081019190915260e00190565b604051602081830303815290604052610753565b81545f908161058b826107e8565b9050835f5b828110156105ce575f818152600188016020908152604091829020548251918201529081018390526105c490606001610569565b9150600101610590565b505f828152600187016020526040812082905586549087906105ef836108f3565b90915550929695505050505050565b83545f9080820361061e5750505f8281526020849052604090205461074b565b82810361063c5750505f82815260018501602052604090205461074b565b5f6106486001836108c9565b90505f610654826107e8565b5f81815260018a01602052604090205490915082821c825b88811015610742576001808316148015610707575f82815260018d0160205260409020548490036106d45760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b6044820152606401610198565b5f82815260018d0160209081526040918290205482519182015290810185905261070090606001610569565b9350610735565b5f82815260208c81526040918290205491516107329261056992889201918252602082015260400190565b93505b50600191821c910161066c565b50909450505050505b949350505050565b6040805160018082528183019092525f91602082018180368337019050506002836040516107819190610922565b602060405180830381855afa15801561079c573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906107bf9190610934565b6040516020016107d092919061094b565b60405160208183030381529060405261049b90610969565b5f80825b8060011660010361080c5781610801816108f3565b92505060011c6107ec565b5092915050565b5f5f5f8385036080811215610826575f5ffd5b6040811215610833575f5ffd5b506040516040810181811067ffffffffffffffff8211171561086357634e487b7160e01b5f52604160045260245ffd5b6040908152853582526020808701359083015290969085013595506060909401359392505050565b5f6020828403121561089b575f5ffd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561049b5761049b6108a2565b8181038181111561049b5761049b6108a2565b808202811582820484141761049b5761049b6108a2565b5f60018201610904576109046108a2565b5060010190565b5f81518060208401855e5f93019283525090919050565b5f61092d828461090b565b9392505050565b5f60208284031215610944575f5ffd5b5051919050565b5f610956828561090b565b60ff199390931683525050601f01919050565b80516020808301519190811015610989575f198160200360031b1b821691505b5091905056fea2646970667358221220e5a63321de5ab7edf7044e666dfc36776e97b3b354686d5aaa584a18488044be64736f6c634300081b003360a060405234801561000f575f5ffd5b50604051610a54380380610a5483398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f5ffd5b81516001600160a01b0381168114610065575f5ffd5b9392505050565b6080516109bc6100985f395f818160f201528181610130015281816101e5015261029401526109bc5ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80632249f653146100595780633d96c2c9146100865780637fb349671461009b57806384f15db2146100ae5780639611c5c2146100ed575b5f5ffd5b61006c6100673660046106cf565b61012c565b604080519283526020830191909152015b60405180910390f35b6100996100943660046106e6565b6101da565b005b6100996100a936600461070f565b610292565b6100dd6100bc3660046107a8565b5f918252602082815260408084209284526002909201905290205460ff1690565b604051901515815260200161007d565b6101147f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161007d565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b67d057b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ae91906107c8565b8311156101bf57505f928392509050565b50505f90815260208190526040902080546001909101549091565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102235760405163164a486160e11b815260040160405180910390fd5b81610241576040516339e16d6560e11b815260040160405180910390fd5b5f83815260208181526040918290208481556001018390559051828152839185917fd3fab397eb3e47fb43090430543ca9623e09aeddf27bfde1bf7bdca871ee9ebc910160405180910390a3505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b67d057b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ee573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031291906107c8565b841115849061034057604051630e194a6d60e01b815260040161033791815260200190565b60405180910390fd5b5061035160608601604087016107fa565b6001600160a01b0316331461036c60608701604088016107fa565b33909161039f576040516357aad58160e01b81526001600160a01b03928316600482015291166024820152604401610337565b5050466060860135146103c5576040516315dfb1f160e21b815260040160405180910390fd5b5f848152602081905260409020805485816103f657604051635228479160e11b815260040161033791815260200190565b505f8581526002830160205260409020548690869060ff161561043557604051633f5c70b560e21b815260048101929092526024820152604401610337565b5050600182015480848082111561046857604051631206f36760e21b815260048101929092526024820152604401610337565b505f905061048361047e368b90038b018b61087e565b6104f7565b90506104928686838a87610559565b5f87815260028501602052604090819020805460ff1916600117905551819084908a907f34bc3301c4660a5642d2246e175e7fea498c94258d39dcaa555a52464dbb083d906104e4908c815260200190565b60405180910390a4505050505050505050565b80516020808301516040808501518151855181860152948401519185019190915281516001600160a01b03166060850152910151608083015260a08201525f906105539060c0015b60405160208183030381529060405261063a565b92915050565b82825f5b868110156105f257600180831614806105ac576105a7848a8a858181106105865761058661090c565b9050602002013560405160200161053f929190918252602082015260400190565b6105e3565b6105e38989848181106105c1576105c161090c565b905060200201358560405160200161053f929190918252602082015260400190565b935050600191821c910161055d565b508282868682841461062d57604051635f216bf160e01b81526004810194909452602484019290925260448301526064820152608401610337565b5050505050505050505050565b6040805160018082528183019092525f91602082018180368337019050506002836040516106689190610937565b602060405180830381855afa158015610683573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906106a691906107c8565b6040516020016106b7929190610942565b60405160208183030381529060405261055390610960565b5f602082840312156106df575f5ffd5b5035919050565b5f5f5f606084860312156106f8575f5ffd5b505081359360208301359350604090920135919050565b5f5f5f5f5f858703610100811215610725575f5ffd5b60a0811215610732575f5ffd5b5085945060a0850135935060c0850135925060e085013567ffffffffffffffff81111561075d575f5ffd5b8601601f8101881361076d575f5ffd5b803567ffffffffffffffff811115610783575f5ffd5b8860208260051b8401011115610797575f5ffd5b959894975092955050506020019190565b5f5f604083850312156107b9575f5ffd5b50508035926020909101359150565b5f602082840312156107d8575f5ffd5b5051919050565b80356001600160a01b03811681146107f5575f5ffd5b919050565b5f6020828403121561080a575f5ffd5b610813826107df565b9392505050565b6040516060810167ffffffffffffffff8111828210171561084957634e487b7160e01b5f52604160045260245ffd5b60405290565b6040805190810167ffffffffffffffff8111828210171561084957634e487b7160e01b5f52604160045260245ffd5b5f81830360a081128015610890575f5ffd5b5061089961081a565b60408212156108a6575f5ffd5b6108ae61084f565b843581526020808601359082015281526040603f19830112156108cf575f5ffd5b6108d761084f565b91506108e5604085016107df565b82526060840135602080840191909152810191909152608090920135604083015250919050565b634e487b7160e01b5f52603260045260245ffd5b5f81518060208401855e5f93019283525090919050565b5f6108138284610920565b5f61094d8285610920565b60ff199390931683525050601f01919050565b80516020808301519190811015610980575f198160200360031b1b821691505b5091905056fea2646970667358221220d3d607cbdb6da94eef1ae1b0717462a56aed668b8c2a400976526574f94b1d9464736f6c634300081b0033";
|
|
5
5
|
/**
|
|
6
6
|
* Rollup link references.
|
|
7
7
|
*/
|
|
@@ -9,11 +9,11 @@ export const RollupLinkReferences = {
|
|
|
9
9
|
"src/core/libraries/TxsDecoder.sol": {
|
|
10
10
|
"TxsDecoder": [
|
|
11
11
|
{
|
|
12
|
-
"start":
|
|
12
|
+
"start": 13579,
|
|
13
13
|
"length": 20
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
|
-
"start":
|
|
16
|
+
"start": 13799,
|
|
17
17
|
"length": 20
|
|
18
18
|
}
|
|
19
19
|
]
|
|
@@ -87,54 +87,6 @@ export const TestERC20Abi = [
|
|
|
87
87
|
],
|
|
88
88
|
"stateMutability": "view"
|
|
89
89
|
},
|
|
90
|
-
{
|
|
91
|
-
"type": "function",
|
|
92
|
-
"name": "decreaseAllowance",
|
|
93
|
-
"inputs": [
|
|
94
|
-
{
|
|
95
|
-
"name": "spender",
|
|
96
|
-
"type": "address",
|
|
97
|
-
"internalType": "address"
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
"name": "requestedDecrease",
|
|
101
|
-
"type": "uint256",
|
|
102
|
-
"internalType": "uint256"
|
|
103
|
-
}
|
|
104
|
-
],
|
|
105
|
-
"outputs": [
|
|
106
|
-
{
|
|
107
|
-
"name": "",
|
|
108
|
-
"type": "bool",
|
|
109
|
-
"internalType": "bool"
|
|
110
|
-
}
|
|
111
|
-
],
|
|
112
|
-
"stateMutability": "nonpayable"
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
"type": "function",
|
|
116
|
-
"name": "increaseAllowance",
|
|
117
|
-
"inputs": [
|
|
118
|
-
{
|
|
119
|
-
"name": "spender",
|
|
120
|
-
"type": "address",
|
|
121
|
-
"internalType": "address"
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
"name": "addedValue",
|
|
125
|
-
"type": "uint256",
|
|
126
|
-
"internalType": "uint256"
|
|
127
|
-
}
|
|
128
|
-
],
|
|
129
|
-
"outputs": [
|
|
130
|
-
{
|
|
131
|
-
"name": "",
|
|
132
|
-
"type": "bool",
|
|
133
|
-
"internalType": "bool"
|
|
134
|
-
}
|
|
135
|
-
],
|
|
136
|
-
"stateMutability": "nonpayable"
|
|
137
|
-
},
|
|
138
90
|
{
|
|
139
91
|
"type": "function",
|
|
140
92
|
"name": "mint",
|
|
@@ -295,27 +247,6 @@ export const TestERC20Abi = [
|
|
|
295
247
|
],
|
|
296
248
|
"anonymous": false
|
|
297
249
|
},
|
|
298
|
-
{
|
|
299
|
-
"type": "error",
|
|
300
|
-
"name": "ERC20FailedDecreaseAllowance",
|
|
301
|
-
"inputs": [
|
|
302
|
-
{
|
|
303
|
-
"name": "spender",
|
|
304
|
-
"type": "address",
|
|
305
|
-
"internalType": "address"
|
|
306
|
-
},
|
|
307
|
-
{
|
|
308
|
-
"name": "currentAllowance",
|
|
309
|
-
"type": "uint256",
|
|
310
|
-
"internalType": "uint256"
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
"name": "requestedDecrease",
|
|
314
|
-
"type": "uint256",
|
|
315
|
-
"internalType": "uint256"
|
|
316
|
-
}
|
|
317
|
-
]
|
|
318
|
-
},
|
|
319
250
|
{
|
|
320
251
|
"type": "error",
|
|
321
252
|
"name": "ERC20InsufficientAllowance",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* TestERC20 bytecode.
|
|
3
3
|
*/
|
|
4
|
-
export const TestERC20Bytecode = "
|
|
4
|
+
export const TestERC20Bytecode = "0x608060405234801561000f575f5ffd5b5060405180604001604052806006815260200165141bdc9d185b60d21b815250604051806040016040528060068152602001651413d495105360d21b815250816003908161005d919061010a565b50600461006a828261010a565b5050506101c4565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009a57607f821691505b6020821081036100b857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010557805f5260205f20601f840160051c810160208510156100e35750805b601f840160051c820191505b81811015610102575f81556001016100ef565b50505b505050565b81516001600160401b0381111561012357610123610072565b610137816101318454610086565b846100be565b6020601f821160018114610169575f83156101525750848201515b5f19600385901b1c1916600184901b178455610102565b5f84815260208120601f198516915b828110156101985787850151825560209485019460019092019101610178565b50848210156101b557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b610746806101d15f395ff3fe608060405234801561000f575f5ffd5b506004361061009b575f3560e01c806340c10f191161006357806340c10f191461011457806370a082311461012957806395d89b4114610151578063a9059cbb14610159578063dd62ed3e1461016c575f5ffd5b806306fdde031461009f578063095ea7b3146100bd57806318160ddd146100e057806323b872dd146100f2578063313ce56714610105575b5f5ffd5b6100a76101a4565b6040516100b491906105b6565b60405180910390f35b6100d06100cb366004610606565b610234565b60405190151581526020016100b4565b6002545b6040519081526020016100b4565b6100d061010036600461062e565b61024d565b604051601281526020016100b4565b610127610122366004610606565b610270565b005b6100e4610137366004610668565b6001600160a01b03165f9081526020819052604090205490565b6100a761027e565b6100d0610167366004610606565b61028d565b6100e461017a366004610688565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101b3906106b9565b80601f01602080910402602001604051908101604052809291908181526020018280546101df906106b9565b801561022a5780601f106102015761010080835404028352916020019161022a565b820191905f5260205f20905b81548152906001019060200180831161020d57829003601f168201915b5050505050905090565b5f3361024181858561029a565b60019150505b92915050565b5f3361025a8582856102ac565b61026585858561032d565b506001949350505050565b61027a828261038a565b5050565b6060600480546101b3906106b9565b5f3361024181858561032d565b6102a783838360016103be565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811015610327578181101561031957604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61032784848484035f6103be565b50505050565b6001600160a01b03831661035657604051634b637e8f60e11b81525f6004820152602401610310565b6001600160a01b03821661037f5760405163ec442f0560e01b81525f6004820152602401610310565b6102a7838383610490565b6001600160a01b0382166103b35760405163ec442f0560e01b81525f6004820152602401610310565b61027a5f8383610490565b6001600160a01b0384166103e75760405163e602df0560e01b81525f6004820152602401610310565b6001600160a01b03831661041057604051634a1406b160e11b81525f6004820152602401610310565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561032757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161048291815260200190565b60405180910390a350505050565b6001600160a01b0383166104ba578060025f8282546104af91906106f1565b9091555061052a9050565b6001600160a01b0383165f908152602081905260409020548181101561050c5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610310565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661054657600280548290039055610564565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105a991815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610601575f5ffd5b919050565b5f5f60408385031215610617575f5ffd5b610620836105eb565b946020939093013593505050565b5f5f5f60608486031215610640575f5ffd5b610649846105eb565b9250610657602085016105eb565b929592945050506040919091013590565b5f60208284031215610678575f5ffd5b610681826105eb565b9392505050565b5f5f60408385031215610699575f5ffd5b6106a2836105eb565b91506106b0602084016105eb565b90509250929050565b600181811c908216806106cd57607f821691505b6020821081036106eb57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561024757634e487b7160e01b5f52601160045260245ffdfea264697066735822122083368d68bff9eea549a3319232db789ab75e8fb3b024d03a145d2a931120858864736f6c634300081b0033";
|
|
5
5
|
/**
|
|
6
6
|
* TestERC20 link references.
|
|
7
7
|
*/
|