@gooddollar/goodcollective-contracts 1.2.0 → 1.3.1
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/contracts/DirectPayments/DirectPaymentsFactory.sol +31 -12
- package/contracts/DirectPayments/DirectPaymentsLibrary.sol +208 -0
- package/contracts/DirectPayments/DirectPaymentsPool.sol +19 -151
- package/contracts/GoodCollective/GoodCollectiveSuperApp.sol +72 -19
- package/contracts/GoodCollective/IGoodCollectiveSuperApp.sol +10 -0
- package/contracts/GoodCollective/SuperAppBaseFlow.sol +6 -0
- package/contracts/Interfaces.sol +25 -0
- package/contracts/UBI/UBIPool.sol +76 -75
- package/contracts/UBI/UBIPoolFactory.sol +34 -13
- package/contracts/utils/HelperLibrary.sol +66 -23
- package/package.json +3 -3
- package/releases/deployment.json +8486 -30703
- package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +16 -4
- package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.ts +146 -0
- package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +191 -20
- package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.ts +6 -8
- package/typechain-types/contracts/DirectPayments/index.ts +1 -0
- package/typechain-types/contracts/GoodCollective/GoodCollectiveSuperApp.ts +141 -6
- package/typechain-types/contracts/{DirectPayments/DirectPaymentsFactory.sol/IRegistry.ts → GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.ts} +32 -20
- package/typechain-types/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.ts +38 -1
- package/typechain-types/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/index.ts +1 -0
- package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.ts +152 -0
- package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.ts +523 -0
- package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/index.ts +5 -0
- package/typechain-types/contracts/GoodCollective/index.ts +2 -1
- package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IIdentityV2.ts +1 -1
- package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IMembersValidator.ts +1 -1
- package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/index.ts +0 -1
- package/typechain-types/contracts/UBI/{UBIPool.sol/UBIPool.ts → UBIPool.ts} +279 -47
- package/typechain-types/contracts/UBI/UBIPoolFactory.ts +58 -34
- package/typechain-types/contracts/UBI/index.ts +1 -2
- package/typechain-types/contracts/index.ts +2 -0
- package/typechain-types/contracts/utils/HelperLibrary.ts +46 -4
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +16 -1
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary__factory.ts +169 -0
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +101 -2
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator__factory.ts +1 -1
- package/typechain-types/factories/contracts/DirectPayments/index.ts +1 -0
- package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory.ts +66 -0
- package/typechain-types/factories/contracts/{DirectPayments/DirectPaymentsFactory.sol/IRegistry__factory.ts → GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp__factory.ts} +21 -12
- package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry__factory.ts +24 -0
- package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/index.ts +1 -0
- package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp__factory.ts +62 -0
- package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow__factory.ts +335 -0
- package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/GoodCollective/index.ts +1 -1
- package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IIdentityV2__factory.ts +1 -1
- package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IMembersValidator__factory.ts +1 -1
- package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/index.ts +0 -1
- package/typechain-types/factories/contracts/UBI/UBIPoolFactory__factory.ts +56 -7
- package/typechain-types/factories/contracts/UBI/UBIPool__factory.ts +2070 -0
- package/typechain-types/factories/contracts/UBI/index.ts +1 -1
- package/typechain-types/factories/contracts/index.ts +1 -0
- package/typechain-types/factories/contracts/test/HelperLibraryTest__factory.ts +1 -1
- package/typechain-types/factories/contracts/utils/HelperLibrary__factory.ts +41 -1
- package/typechain-types/hardhat.d.ts +35 -8
- package/typechain-types/index.ts +10 -4
- package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.ts +0 -1327
- package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.sol/index.ts +0 -5
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory__factory.ts +0 -1004
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory.sol/index.ts +0 -5
- package/typechain-types/factories/contracts/UBI/UBIPool.sol/UBIPool__factory.ts +0 -1916
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
|
|
5
|
+
import type { Provider, TransactionRequest } from "@ethersproject/providers";
|
|
6
|
+
import type { PromiseOrValue } from "../../../common";
|
|
7
|
+
import type {
|
|
8
|
+
DirectPaymentsLibrary,
|
|
9
|
+
DirectPaymentsLibraryInterface,
|
|
10
|
+
} from "../../../contracts/DirectPayments/DirectPaymentsLibrary";
|
|
11
|
+
|
|
12
|
+
const _abi = [
|
|
13
|
+
{
|
|
14
|
+
inputs: [],
|
|
15
|
+
name: "NO_BALANCE",
|
|
16
|
+
type: "error",
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
inputs: [],
|
|
20
|
+
name: "OVER_GLOBAL_LIMITS",
|
|
21
|
+
type: "error",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
inputs: [
|
|
25
|
+
{
|
|
26
|
+
internalType: "address",
|
|
27
|
+
name: "",
|
|
28
|
+
type: "address",
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
name: "OVER_MEMBER_LIMITS",
|
|
32
|
+
type: "error",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
anonymous: false,
|
|
36
|
+
inputs: [
|
|
37
|
+
{
|
|
38
|
+
indexed: true,
|
|
39
|
+
internalType: "uint256",
|
|
40
|
+
name: "tokenId",
|
|
41
|
+
type: "uint256",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
indexed: false,
|
|
45
|
+
internalType: "uint16",
|
|
46
|
+
name: "eventType",
|
|
47
|
+
type: "uint16",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
indexed: false,
|
|
51
|
+
internalType: "uint32",
|
|
52
|
+
name: "eventTimestamp",
|
|
53
|
+
type: "uint32",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
indexed: false,
|
|
57
|
+
internalType: "uint256",
|
|
58
|
+
name: "eventQuantity",
|
|
59
|
+
type: "uint256",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
indexed: false,
|
|
63
|
+
internalType: "string",
|
|
64
|
+
name: "eventUri",
|
|
65
|
+
type: "string",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
indexed: false,
|
|
69
|
+
internalType: "address[]",
|
|
70
|
+
name: "contributers",
|
|
71
|
+
type: "address[]",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
indexed: false,
|
|
75
|
+
internalType: "uint256",
|
|
76
|
+
name: "rewardPerContributer",
|
|
77
|
+
type: "uint256",
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
name: "EventRewardClaimed",
|
|
81
|
+
type: "event",
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
anonymous: false,
|
|
85
|
+
inputs: [
|
|
86
|
+
{
|
|
87
|
+
indexed: true,
|
|
88
|
+
internalType: "uint256",
|
|
89
|
+
name: "tokenId",
|
|
90
|
+
type: "uint256",
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
indexed: false,
|
|
94
|
+
internalType: "uint256",
|
|
95
|
+
name: "totalRewards",
|
|
96
|
+
type: "uint256",
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
name: "NFTClaimed",
|
|
100
|
+
type: "event",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
anonymous: false,
|
|
104
|
+
inputs: [
|
|
105
|
+
{
|
|
106
|
+
indexed: false,
|
|
107
|
+
internalType: "address",
|
|
108
|
+
name: "contributer",
|
|
109
|
+
type: "address",
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
name: "NOT_MEMBER_OR_WHITELISTED_OR_LIMITS",
|
|
113
|
+
type: "event",
|
|
114
|
+
},
|
|
115
|
+
] as const;
|
|
116
|
+
|
|
117
|
+
const _bytecode =
|
|
118
|
+
"0x6117cd61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100615760003560e01c806327fdccf114610066578063ba35875114610088578063bfd8847e146100a8578063cb22f4ff146100dc578063d8e7cd72146100fc575b600080fd5b81801561007257600080fd5b50610086610081366004610ea2565b61011c565b005b81801561009457600080fd5b506100866100a3366004610edf565b610315565b8180156100b457600080fd5b506100c86100c3366004610f2e565b6104d8565b604051901515815260200160405180910390f35b8180156100e857600080fd5b506100866100f736600461125c565b61061e565b81801561010857600080fd5b506100866101173660046114bd565b61094d565b6001830154429061014090600160801b90046001600160401b03166201518061156b565b6001600160401b0316101561016d5782546001600160801b0319166001600160801b0382161783556101af565b82548190849060009061018a9084906001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6101b7610aae565b60018401546001600160401b03918216600160c01b90910490911610156101f55782546001600160801b03808316600160801b02911617835561023e565b825481908490601090610219908490600160801b90046001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b60018301805482919060009061025e9084906001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550428360010160106101000a8154816001600160401b0302191690836001600160401b031602179055506102b3610aae565b6001840180546001600160401b0392909216600160c01b026001600160c01b03909216919091179055815183546001600160801b03600160801b90910416111561031057604051639803f99760e01b815260040160405180910390fd5b505050565b6001820154429061033990600160801b90046001600160401b03166201518061156b565b6001600160401b031610156103665781546001600160801b0319166001600160801b0382161782556103a8565b8154819083906000906103839084906001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6103b0610aae565b60018301546001600160401b03918216600160c01b90910490911610156103ee5781546001600160801b03808316600160801b029116178255610437565b815481908390601090610412908490600160801b90046001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001820180548291906000906104579084906001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550428260010160106101000a8154816001600160401b0302191690836001600160401b031602179055506104ac610aae565b8260010160186101000a8154816001600160401b0302191690836001600160401b031602179055505050565b6000306001600160a01b03166391d14854306001600160a01b031663a10f469e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054b91906115b2565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b0386166024820152604401602060405180830381865afa158015610596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ba91906115cb565b15156000036105cb57506000610616565b6105d58583610315565b604084015185546001600160801b03161180610605575060208401518554600160801b90046001600160801b0316115b1561061257506000610616565b5060015b949350505050565b6000808460c001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065191906115ef565b602060405180830381865afa15801561066e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069291906115b2565b60e086015190915060005b846060015151811015610907576000856060015182815181106106c2576106c2611603565b60200260200101516040015183801561070557506000876060015184815181106106ee576106ee611603565b602002602001015160a001516001600160801b0316115b61073957610734898860600151858151811061072357610723611603565b602002602001015160000151610ac2565b61075c565b8660600151838151811061074f5761074f611603565b602002602001015160a001515b6001600160801b031661076f9190611619565b905080156108f4576107818186611630565b9450838511156107a45760405163701b93d160e11b815260040160405180910390fd5b6107ae8585611643565b93506107df8b8b8b8b8a6060015187815181106107cd576107cd611603565b6020026020010151608001518661094d565b867f66417923523a2d06a43299cb4e498d17eef686f73ae2484f05c36479f5ae5a6d8760600151848151811061081757610817611603565b6020026020010151600001518860600151858151811061083957610839611603565b6020026020010151602001518960600151868151811061085b5761085b611603565b6020026020010151604001518a60600151878151811061087d5761087d611603565b6020026020010151606001518b60600151888151811061089f5761089f611603565b6020026020010151608001518c6060015189815181106108c1576108c1611603565b60200260200101516080015151886108d99190611656565b6040516108eb969594939291906116c8565b60405180910390a25b50806108ff8161174f565b91505061069d565b50847fdc780326abc7aa2bf7cfbd02de3cdd5c8020124228dbcbc133d6bcbd74a784cc8460405161093a91815260200190565b60405180910390a2505050505050505050565b60008251826001600160801b03166109659190611656565b90506000805b8451811015610a985760006109d788600088858151811061098e5761098e611603565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208a8885815181106109c9576109c9611603565b6020026020010151876104d8565b90508015610a3457610a238683815181106109f4576109f4611603565b6020026020010151856001600160801b03168960c001516001600160a01b0316610b439092919063ffffffff16565b610a2d8484611592565b9250610a85565b7ffd1e0ab28ffb8b7b3c8d7d35f6f35733d9c03c0f575a37403c6ec464517e9c3f868381518110610a6757610a67611603565b6020026020010151604051610a7c91906115ef565b60405180910390a15b5080610a908161174f565b91505061096b565b50610aa488888361011c565b5050505050505050565b6000610abd62278d0042611656565b905090565b6000805b836020015151811015610b375783602001518181518110610ae957610ae9611603565b602002602001015161ffff168361ffff1603610b255783604001518181518110610b1557610b15611603565b6020026020010151915050610b3d565b80610b2f8161174f565b915050610ac6565b50600090505b92915050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65649084015261031092869291600091610bd3918516908490610c55565b8051909150156103105780806020019051810190610bf191906115cb565b6103105760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084015b60405180910390fd5b6060610616848460008585600080866001600160a01b03168587604051610c7c9190611768565b60006040518083038185875af1925050503d8060008114610cb9576040519150601f19603f3d011682016040523d82523d6000602084013e610cbe565b606091505b5091509150610ccf87838387610cda565b979650505050505050565b60608315610d49578251600003610d42576001600160a01b0385163b610d425760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c4c565b5081610616565b6106168383815115610d5e5781518083602001fd5b8060405162461bcd60e51b8152600401610c4c9190611784565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715610db157610db1610d78565b60405290565b604051608081016001600160401b0381118282101715610db157610db1610d78565b60405160c081016001600160401b0381118282101715610db157610db1610d78565b604051601f8201601f191681016001600160401b0381118282101715610e2357610e23610d78565b604052919050565b600060608284031215610e3d57600080fd5b604051606081016001600160401b0381118282101715610e5f57610e5f610d78565b80604052508091508235815260208301356020820152604083013560408201525092915050565b80356001600160801b0381168114610e9d57600080fd5b919050565b600080600060a08486031215610eb757600080fd5b83359250610ec88560208601610e2b565b9150610ed660808501610e86565b90509250925092565b60008060408385031215610ef257600080fd5b82359150610f0260208401610e86565b90509250929050565b6001600160a01b0381168114610f2057600080fd5b50565b8035610e9d81610f0b565b60008060008060c08587031215610f4457600080fd5b84359350610f558660208701610e2b565b92506080850135610f6581610f0b565b9150610f7360a08601610e86565b905092959194509250565b803563ffffffff81168114610e9d57600080fd5b60006001600160401b03821115610fab57610fab610d78565b5060051b60200190565b803561ffff81168114610e9d57600080fd5b600082601f830112610fd857600080fd5b81356020610fed610fe883610f92565b610dfb565b82815260059290921b8401810191818101908684111561100c57600080fd5b8286015b8481101561102e5761102181610fb5565b8352918301918301611010565b509695505050505050565b600082601f83011261104a57600080fd5b8135602061105a610fe883610f92565b82815260059290921b8401810191818101908684111561107957600080fd5b8286015b8481101561102e5761108e81610e86565b835291830191830161107d565b8015158114610f2057600080fd5b8035610e9d8161109b565b600061010082840312156110c757600080fd5b6110cf610d8e565b90506110da82610f7e565b815260208201356001600160401b03808211156110f657600080fd5b61110285838601610fc7565b6020840152604084013591508082111561111b57600080fd5b5061112884828501611039565b60408301525061113a60608301610f23565b606082015261114b60808301610f23565b608082015261115c60a08301610f23565b60a082015261116d60c08301610f23565b60c082015261117e60e083016110a9565b60e082015292915050565b600082601f83011261119a57600080fd5b81356001600160401b038111156111b3576111b3610d78565b6111c6601f8201601f1916602001610dfb565b8181528460208386010111156111db57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261120957600080fd5b81356020611219610fe883610f92565b82815260059290921b8401810191818101908684111561123857600080fd5b8286015b8481101561102e57803561124f81610f0b565b835291830191830161123c565b600080600080600080610100878903121561127657600080fd5b863595506112878860208901610e2b565b9450608087013593506001600160401b0360a088013511156112a857600080fd5b6112b88860a089013589016110b4565b925060c087013591506001600160401b0360e088013511156112d957600080fd5b60e087013587016080818a0312156112f057600080fd5b6112f8610db7565b61130182610f7e565b815261130f60208301610fb5565b60208201526001600160401b036040830135111561132c57600080fd5b61133c8a60408401358401611189565b60408201526001600160401b036060830135111561135957600080fd5b60608201358201915089601f83011261137157600080fd5b61137e610fe88335610f92565b82358082526020808301929160051b8501018c101561139c57600080fd5b602084015b6020853560051b8601018110156114a5576001600160401b03813511156113c757600080fd5b60c0813586018e03601f190112156113de57600080fd5b6113e6610dd9565b6113f560208335880101610fb5565b815261140660408335880101610f7e565b602082015281358601606081013560408301526001600160401b03608090910135111561143257600080fd5b6114488e83358801608081013501602001611189565b60608201526001600160401b038235870160a00135111561146857600080fd5b61147e8e8335880160a0810135016020016111f8565b608082015261149260c08335880101610e86565b60a08201528352602092830192016113a1565b50806060840152505080925050509295509295509295565b60008060008060008061010087890312156114d757600080fd5b863595506114e88860208901610e2b565b94506080870135935060a08701356001600160401b038082111561150b57600080fd5b6115178a838b016110b4565b945060c089013591508082111561152d57600080fd5b5061153a89828a016111f8565b92505061154960e08801610e86565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381811683821601908082111561158b5761158b611555565b5092915050565b6001600160801b0381811683821601908082111561158b5761158b611555565b6000602082840312156115c457600080fd5b5051919050565b6000602082840312156115dd57600080fd5b81516115e88161109b565b9392505050565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610b3d57610b3d611555565b80820180821115610b3d57610b3d611555565b81810381811115610b3d57610b3d611555565b60008261167357634e487b7160e01b600052601260045260246000fd5b500490565b60005b8381101561169357818101518382015260200161167b565b50506000910152565b600081518084526116b4816020860160208601611678565b601f01601f19169290920160200192915050565b61ffff871681526000602063ffffffff88168184015286604084015260c060608401526116f860c084018761169c565b838103608085015285518082528287019183019060005b818110156117345783516001600160a01b03168352928401929184019160010161170f565b50506001600160801b03861660a08601529250610ccf915050565b60006001820161176157611761611555565b5060010190565b6000825161177a818460208701611678565b9190910192915050565b6020815260006115e8602083018461169c56fea2646970667358221220247df503fb16d082ab32e4c9c3987b9c88234dd9112ffed819c672695d46610d64736f6c63430008130033";
|
|
119
|
+
|
|
120
|
+
type DirectPaymentsLibraryConstructorParams =
|
|
121
|
+
| [signer?: Signer]
|
|
122
|
+
| ConstructorParameters<typeof ContractFactory>;
|
|
123
|
+
|
|
124
|
+
const isSuperArgs = (
|
|
125
|
+
xs: DirectPaymentsLibraryConstructorParams
|
|
126
|
+
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
127
|
+
|
|
128
|
+
export class DirectPaymentsLibrary__factory extends ContractFactory {
|
|
129
|
+
constructor(...args: DirectPaymentsLibraryConstructorParams) {
|
|
130
|
+
if (isSuperArgs(args)) {
|
|
131
|
+
super(...args);
|
|
132
|
+
} else {
|
|
133
|
+
super(_abi, _bytecode, args[0]);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
override deploy(
|
|
138
|
+
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
139
|
+
): Promise<DirectPaymentsLibrary> {
|
|
140
|
+
return super.deploy(overrides || {}) as Promise<DirectPaymentsLibrary>;
|
|
141
|
+
}
|
|
142
|
+
override getDeployTransaction(
|
|
143
|
+
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
144
|
+
): TransactionRequest {
|
|
145
|
+
return super.getDeployTransaction(overrides || {});
|
|
146
|
+
}
|
|
147
|
+
override attach(address: string): DirectPaymentsLibrary {
|
|
148
|
+
return super.attach(address) as DirectPaymentsLibrary;
|
|
149
|
+
}
|
|
150
|
+
override connect(signer: Signer): DirectPaymentsLibrary__factory {
|
|
151
|
+
return super.connect(signer) as DirectPaymentsLibrary__factory;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
static readonly bytecode = _bytecode;
|
|
155
|
+
static readonly abi = _abi;
|
|
156
|
+
static createInterface(): DirectPaymentsLibraryInterface {
|
|
157
|
+
return new utils.Interface(_abi) as DirectPaymentsLibraryInterface;
|
|
158
|
+
}
|
|
159
|
+
static connect(
|
|
160
|
+
address: string,
|
|
161
|
+
signerOrProvider: Signer | Provider
|
|
162
|
+
): DirectPaymentsLibrary {
|
|
163
|
+
return new Contract(
|
|
164
|
+
address,
|
|
165
|
+
_abi,
|
|
166
|
+
signerOrProvider
|
|
167
|
+
) as DirectPaymentsLibrary;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
@@ -280,7 +280,7 @@ const _abi = [
|
|
|
280
280
|
type: "address",
|
|
281
281
|
},
|
|
282
282
|
],
|
|
283
|
-
name: "
|
|
283
|
+
name: "NOT_MEMBER_OR_WHITELISTED_OR_LIMITS",
|
|
284
284
|
type: "event",
|
|
285
285
|
},
|
|
286
286
|
{
|
|
@@ -1050,6 +1050,24 @@ const _abi = [
|
|
|
1050
1050
|
stateMutability: "view",
|
|
1051
1051
|
type: "function",
|
|
1052
1052
|
},
|
|
1053
|
+
{
|
|
1054
|
+
inputs: [],
|
|
1055
|
+
name: "getManagerFee",
|
|
1056
|
+
outputs: [
|
|
1057
|
+
{
|
|
1058
|
+
internalType: "address",
|
|
1059
|
+
name: "feeRecipient",
|
|
1060
|
+
type: "address",
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
internalType: "uint32",
|
|
1064
|
+
name: "feeBps",
|
|
1065
|
+
type: "uint32",
|
|
1066
|
+
},
|
|
1067
|
+
],
|
|
1068
|
+
stateMutability: "view",
|
|
1069
|
+
type: "function",
|
|
1070
|
+
},
|
|
1053
1071
|
{
|
|
1054
1072
|
inputs: [
|
|
1055
1073
|
{
|
|
@@ -1083,6 +1101,16 @@ const _abi = [
|
|
|
1083
1101
|
name: "totalFees",
|
|
1084
1102
|
type: "uint256",
|
|
1085
1103
|
},
|
|
1104
|
+
{
|
|
1105
|
+
internalType: "uint256",
|
|
1106
|
+
name: "protocolFees",
|
|
1107
|
+
type: "uint256",
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
internalType: "uint256",
|
|
1111
|
+
name: "managerFees",
|
|
1112
|
+
type: "uint256",
|
|
1113
|
+
},
|
|
1086
1114
|
{
|
|
1087
1115
|
internalType: "int96",
|
|
1088
1116
|
name: "incomeFlowRate",
|
|
@@ -1093,6 +1121,11 @@ const _abi = [
|
|
|
1093
1121
|
name: "feeRate",
|
|
1094
1122
|
type: "int96",
|
|
1095
1123
|
},
|
|
1124
|
+
{
|
|
1125
|
+
internalType: "int96",
|
|
1126
|
+
name: "managerFeeRate",
|
|
1127
|
+
type: "int96",
|
|
1128
|
+
},
|
|
1096
1129
|
],
|
|
1097
1130
|
stateMutability: "view",
|
|
1098
1131
|
type: "function",
|
|
@@ -1349,6 +1382,11 @@ const _abi = [
|
|
|
1349
1382
|
name: "_limits",
|
|
1350
1383
|
type: "tuple",
|
|
1351
1384
|
},
|
|
1385
|
+
{
|
|
1386
|
+
internalType: "uint32",
|
|
1387
|
+
name: "_managerFeeBps",
|
|
1388
|
+
type: "uint32",
|
|
1389
|
+
},
|
|
1352
1390
|
{
|
|
1353
1391
|
internalType: "contract DirectPaymentsFactory",
|
|
1354
1392
|
name: "_registry",
|
|
@@ -1402,6 +1440,19 @@ const _abi = [
|
|
|
1402
1440
|
stateMutability: "view",
|
|
1403
1441
|
type: "function",
|
|
1404
1442
|
},
|
|
1443
|
+
{
|
|
1444
|
+
inputs: [],
|
|
1445
|
+
name: "managerFeeBps",
|
|
1446
|
+
outputs: [
|
|
1447
|
+
{
|
|
1448
|
+
internalType: "uint32",
|
|
1449
|
+
name: "",
|
|
1450
|
+
type: "uint32",
|
|
1451
|
+
},
|
|
1452
|
+
],
|
|
1453
|
+
stateMutability: "view",
|
|
1454
|
+
type: "function",
|
|
1455
|
+
},
|
|
1405
1456
|
{
|
|
1406
1457
|
inputs: [
|
|
1407
1458
|
{
|
|
@@ -1607,6 +1658,24 @@ const _abi = [
|
|
|
1607
1658
|
stateMutability: "view",
|
|
1608
1659
|
type: "function",
|
|
1609
1660
|
},
|
|
1661
|
+
{
|
|
1662
|
+
inputs: [
|
|
1663
|
+
{
|
|
1664
|
+
internalType: "address",
|
|
1665
|
+
name: "_recipient",
|
|
1666
|
+
type: "address",
|
|
1667
|
+
},
|
|
1668
|
+
{
|
|
1669
|
+
internalType: "uint256",
|
|
1670
|
+
name: "amount",
|
|
1671
|
+
type: "uint256",
|
|
1672
|
+
},
|
|
1673
|
+
],
|
|
1674
|
+
name: "recoverFunds",
|
|
1675
|
+
outputs: [],
|
|
1676
|
+
stateMutability: "nonpayable",
|
|
1677
|
+
type: "function",
|
|
1678
|
+
},
|
|
1610
1679
|
{
|
|
1611
1680
|
inputs: [],
|
|
1612
1681
|
name: "registry",
|
|
@@ -1735,6 +1804,11 @@ const _abi = [
|
|
|
1735
1804
|
name: "_settings",
|
|
1736
1805
|
type: "tuple",
|
|
1737
1806
|
},
|
|
1807
|
+
{
|
|
1808
|
+
internalType: "uint32",
|
|
1809
|
+
name: "_managerFeeBps",
|
|
1810
|
+
type: "uint32",
|
|
1811
|
+
},
|
|
1738
1812
|
],
|
|
1739
1813
|
name: "setPoolSettings",
|
|
1740
1814
|
outputs: [],
|
|
@@ -1808,6 +1882,21 @@ const _abi = [
|
|
|
1808
1882
|
name: "lastIncomeRate",
|
|
1809
1883
|
type: "int96",
|
|
1810
1884
|
},
|
|
1885
|
+
{
|
|
1886
|
+
internalType: "address",
|
|
1887
|
+
name: "lastManagerFeeRecipient",
|
|
1888
|
+
type: "address",
|
|
1889
|
+
},
|
|
1890
|
+
{
|
|
1891
|
+
internalType: "uint256",
|
|
1892
|
+
name: "protocolFees",
|
|
1893
|
+
type: "uint256",
|
|
1894
|
+
},
|
|
1895
|
+
{
|
|
1896
|
+
internalType: "uint256",
|
|
1897
|
+
name: "managerFees",
|
|
1898
|
+
type: "uint256",
|
|
1899
|
+
},
|
|
1811
1900
|
],
|
|
1812
1901
|
stateMutability: "view",
|
|
1813
1902
|
type: "function",
|
|
@@ -2018,7 +2107,7 @@ const _abi = [
|
|
|
2018
2107
|
] as const;
|
|
2019
2108
|
|
|
2020
2109
|
const _bytecode =
|
|
2021
|
-
"0x60e06040523060c0523480156200001557600080fd5b5060405162005f4938038062005f49833981016040819052620000389162000098565b6001600160a01b038216608081905282908290620000695760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b031660a05250620000d7915050565b6001600160a01b03811681146200009557600080fd5b50565b60008060408385031215620000ac57600080fd5b8251620000b9816200007f565b6020840151909250620000cc816200007f565b809150509250929050565b60805160a05160c051615dd262000177600039600081816111320152818161117201528181611272015281816112b2015261132a01526000818161087801528181610ee90152611e9d015260008181610ae601528181610e6b01528181610ff4015281816113d8015281816114c5015281816116690152818161185d01528181611db3015281816121de01528181612d230152612d880152615dd26000f3fe6080604052600436106102395760003560e01c80630150aefb1461023e57806301d06a8c1461028457806301ffc9a7146102a65780630c710776146102c6578063150b7a02146102f25780631a2a84b31461032b5780631bb15f3d146103595780631db128c714610405578063230dbd2914610432578063248a9ca3146104525780632b4116f7146104725780632f2ff15d1461049f57806330d9c915146104bf57806336568abe146104df5780633659cfe6146104ff578063379607f51461051f57806347ccca021461053f5780634f1ef2861461056057806352d1902d1461057357806353c11f99146105885780635ab1bd53146105a85780635f9e7d77146105bd578063647c75e2146105dd57806372ca8a3e1461064e57806376ba085b1461066e5780637b1039991461068e578063860aefcf146106af578063884d1f40146106ec57806391d148541461070c5780639f351ce41461072c5780639f8fddd21461074c578063a10f469e1461076c578063a217fddf1461078e578063a4c0ed36146107a3578063ae827200146107c3578063bcb4546f146107d6578063bd499dee146107f8578063c2e11e3f14610818578063c31c9c0714610866578063d3112b2e1461089a578063d5391393146108cf578063d547741f146108f1578063d80528ae14610911578063d86ed3e51461097d578063dc61d5c21461099d578063def482a4146109db578063e06174e4146109fb578063ec87621c14610a92578063f3d5e34814610ab4578063f437bc5914610ad4575b600080fd5b34801561024a57600080fd5b5061026f610259366004614434565b61013e6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561029057600080fd5b506102a461029f366004614766565b610b08565b005b3480156102b257600080fd5b5061026f6102c136600461479a565b610cb7565b3480156102d257600080fd5b506102df6459df64940081565b604051600b9190910b815260200161027b565b3480156102fe57600080fd5b5061031261030d36600461480c565b610cee565b6040516001600160e01b0319909116815260200161027b565b34801561033757600080fd5b5061034b61034636600461487e565b610da9565b60405190815260200161027b565b34801561036557600080fd5b506103c161037436600461487e565b61014060205260009081526040902080546001909101546001600160801b0380831692600160801b90819004821692918216916001600160401b03918104821691600160c01b9091041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161027b565b34801561041157600080fd5b506104256104203660046149ab565b610e49565b60405161027b9190614a72565b34801561043e57600080fd5b5061042561044d366004614a85565b610f6a565b34801561045e57600080fd5b5061034b61046d366004614434565b610fb1565b34801561047e57600080fd5b50609754610492906001600160a01b031681565b60405161027b9190614b5c565b3480156104ab57600080fd5b506102a46104ba366004614b70565b610fc6565b3480156104cb57600080fd5b506104256104da366004614ba0565b610fe7565b3480156104eb57600080fd5b506102a46104fa366004614b70565b6110aa565b34801561050b57600080fd5b506102a461051a36600461487e565b611128565b34801561052b57600080fd5b506102a461053a366004614434565b6111f0565b34801561054b57600080fd5b5061013d54610492906001600160a01b031681565b6102a461056e366004614c3e565b611268565b34801561057f57600080fd5b5061034b61131d565b34801561059457600080fd5b506104256105a3366004614a85565b6113cb565b3480156105b457600080fd5b506104926114a8565b3480156105c957600080fd5b506104256105d8366004614ba0565b6114b8565b3480156105e957600080fd5b506106276105f836600461487e565b60986020526000908152604090208054600190910154600b81900b90600160601b90046001600160801b031683565b60408051938452600b9290920b60208401526001600160801b03169082015260600161027b565b34801561065a57600080fd5b5061026f61066936600461487e565b61159d565b34801561067a57600080fd5b506102a4610689366004614e8f565b6115b1565b34801561069a57600080fd5b5061014354610492906001600160a01b031681565b3480156106bb57600080fd5b5061013a5461013b5461013c546106d192919083565b6040805193845260208401929092529082015260600161027b565b3480156106f857600080fd5b50610425610707366004614ba0565b61165c565b34801561071857600080fd5b5061026f610727366004614b70565b611759565b34801561073857600080fd5b506102a4610747366004614ef2565b611784565b34801561075857600080fd5b50610425610767366004614f2e565b61183b565b34801561077857600080fd5b5061034b600080516020615d7d83398151915281565b34801561079a57600080fd5b5061034b600081565b3480156107af57600080fd5b5061026f6107be366004614f7c565b6118f5565b6102a46107d1366004614fd7565b61196e565b3480156107e257600080fd5b5061034b600080516020615cb683398151915281565b34801561080457600080fd5b506102a4610813366004615066565b6119f4565b34801561082457600080fd5b5061014154610142546103c1916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b34801561087257600080fd5b506104927f000000000000000000000000000000000000000000000000000000000000000081565b3480156108a657600080fd5b50609954609a546108c1916001600160a01b03908116911682565b60405161027b9291906150d9565b3480156108db57600080fd5b5061034b600080516020615cd683398151915281565b3480156108fd57600080fd5b506102a461090c366004614b70565b611c7f565b34801561091d57600080fd5b50609b54609c54609d54609e54610949939291906001600160a01b03811690600160a01b9004600b0b85565b604080519586526020860194909452928401919091526001600160a01b03166060830152600b0b608082015260a00161027b565b34801561098957600080fd5b50610425610998366004614a85565b611c9b565b3480156109a957600080fd5b506109b2611cc9565b604080519485526020850193909352600b91820b928401929092520b606082015260800161027b565b3480156109e757600080fd5b506104256109f63660046150f3565b611d91565b348015610a0757600080fd5b506101335461013654610137546101385461013954610a4a9463ffffffff16936001600160a01b039081169381169281169190811690600160a01b900460ff1686565b6040805163ffffffff90971687526001600160a01b039586166020880152938516938601939093529083166060850152919091166080830152151560a082015260c00161027b565b348015610a9e57600080fd5b5061034b600080516020615d3683398151915281565b348015610ac057600080fd5b506102a4610acf366004615151565b611fe4565b348015610ae057600080fd5b506104927f000000000000000000000000000000000000000000000000000000000000000081565b600080516020615d36833981519152610b2081612057565b61013354825163ffffffff908116911614610b4e57604051630f91888160e01b815260040160405180910390fd5b60608201516001600160a01b0316610b795760405163890bc98f60e01b815260040160405180910390fd5b61013654610b92906000906001600160a01b0316612061565b8151610133805463ffffffff191663ffffffff9092169190911781556020808401518051859392610bc992610134929101906142d0565b5060408201518051610be5916002840191602090910190614379565b506060828101516003830180546001600160a01b039283166001600160a01b031991821617909155608085015160048501805491841691831691909117905560a08501516005850180549184169190921617905560c08401516006909301805460e0909501511515600160a01b026001600160a81b03199095169390911692909217929092179055820151610c7c906000906120e4565b7f3eed38e4b04ae182994f6ef05c58a3987f571a66d6860d9046621cc204f407a082604051610cab91906151e5565b60405180910390a15050565b60006001600160e01b03198216637965db0b60e01b1480610ce857506301ffc9a760e01b6001600160e01b03198316145b92915050565b61013d546040516302b5313d60e21b81526004810185905260009182916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d65919081019061536b565b61013354815191925063ffffffff918216911614610d965760405163f26722ad60e01b815260040160405180910390fd5b50630a85bd0160e11b9695505050505050565b6001600160a01b0381166000908152609860209081526040808320815160608101835281548152600190910154600b81900b938201849052600160601b90046001600160801b031691810191909152908203610e06575192915050565b6040810151610e1e906001600160801b03164261553e565b81602001516001600160601b0316610e369190615551565b8151610e429190615568565b9392505050565b606082336001600160a01b03821614801590610e8e5750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15610eb7573360405163087231bf60e31b8152600401610eae9190614b5c565b60405180910390fd5b6097546040516358c0dacb60e01b815273__$0d78a42341742155da77b97d7f993534c7$__916358c0dacb91610f1f917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b0316908a906004016155c0565b602060405180830381865af4158015610f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6091906155fb565b5091949350505050565b60606000610f7a87890189615614565b509050600080610f8c87890189615651565b91509150610f9e8d8484848a8a6120ee565b93505050505b9998505050505050505050565b60009081526065602052604090206001015490565b610fcf82610fb1565b610fd881612057565b610fe28383612135565b505050565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461103257604051632f2d36a760e01b815260040160405180910390fd5b61103b876121b8565b61105e5750604080518082019091526002815261060f60f31b602082015261109f565b6110678861159d565b61108457604051631ea25bab60e31b815260040160405180910390fd5b50604080518082019091526002815261060f60f31b60208201525b979650505050505050565b6001600160a01b038116331461111a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610eae565b6111248282612061565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111705760405162461bcd60e51b8152600401610eae9061567d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111a261226c565b6001600160a01b0316146111c85760405162461bcd60e51b8152600401610eae906156b7565b6111d181612288565b604080516000808252602082019092526111ed91839190612293565b50565b61013d546040516302b5313d60e21b8152600481018390526111ed9183916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015611240573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610747919081019061536b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112b05760405162461bcd60e51b8152600401610eae9061567d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112e261226c565b6001600160a01b0316146113085760405162461bcd60e51b8152600401610eae906156b7565b61131182612288565b61112482826001612293565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113b85760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610eae565b50600080516020615d1683398151915290565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614158061140b5750611409896121b8565b155b8061141c575061141a8a61159d565b155b156114605782828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610fa492505050565b60008061146f888a018a615614565b9092509050600080611483888a018a6156f1565b915091506114968e858584868c8c6123fe565b9e9d5050505050505050505050505050565b610143546001600160a01b031690565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415806114f857506114f6876121b8565b155b8061150957506115078861159d565b155b1561152d5750604080518082019091526002815261060f60f31b602082015261109f565b60008061153c86880188615614565b90925090506000806115586001600160a01b038d168585612451565b505091509150818160405160200161157d929190918252600b0b602082015260400190565b604051602081830303815290604052945050505050979650505050505050565b6097546001600160a01b0390811691161490565b600080516020615cd68339815191526115c981612057565b61013d546040516321aa1d2160e11b81526000916001600160a01b0316906343543a42906116009088908890600190600401615847565b6020604051808303816000875af115801561161f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164391906155fb565b90508215611655576116558185611784565b5050505050565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116a757604051632f2d36a760e01b815260040160405180910390fd5b6116b0876121b8565b6116d35750604080518082019091526002815261060f60f31b602082015261109f565b6116dc8861159d565b6116f957604051631ea25bab60e31b815260040160405180910390fd5b600061170785870187615614565b5090506000806117216001600160a01b038c168430612451565b505060408051600b9290920b60208301528181019290925281518082038301815260609091019091529b9a5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61013d5460405163049b73f560e31b81526001600160a01b03909116906324db9fa8906117b7908590859060040161588a565b600060405180830381865afa1580156117d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117fc919081019061536b565b50600082815261013e602052604090205460ff1615611831576040516330e51df560e11b815260048101839052602401610eae565b61112482826124e9565b606083336001600160a01b038216148015906118805750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156118a0573360405163087231bf60e31b8152600401610eae9190614b5c565b836000036118c157604051630f6fa54560e41b815260040160405180910390fd5b6097546118d9906001600160a01b0316863087612830565b610f60858560006040518060200160405280600081525061293a565b6097546000906001600160a01b0316331461192357604051630ce706f760e41b815260040160405180910390fd5b8360000361194457604051630f6fa54560e41b815260040160405180910390fd5b611960858560006040518060200160405280600081525061293a565b50600190505b949350505050565b6101435460408051638abf607760e01b815290516000926001600160a01b031691638abf60779160048083019260209291908290030181865afa1580156119b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119dd91906158a3565b90506119e881612288565b61112481836000612293565b600054610100900460ff1615808015611a145750600054600160ff909116105b80611a355750611a2330612cb4565b158015611a35575060005460ff166001145b611a985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610eae565b6000805460ff191660011790558015611abb576000805461ff0019166101001790555b61014380546001600160a01b0319166001600160a01b0384161790558351610133805463ffffffff191663ffffffff9092169190911781556020808601518051879392611b0e92610134929101906142d0565b5060408201518051611b2a916002840191602090910190614379565b5060608201516003820180546001600160a01b039283166001600160a01b031991821617909155608084015160048401805491841691831691909117905560a084015160058401805491841691831691909117905560c08401516006909301805460e0909501511515600160a01b026001600160a81b03199095169383169390931793909317909155845161013a55602085015161013b55604085015161013c5561013d805491881691909216179055611be56000336120e4565b611c01600080516020615d3683398151915285606001516120e4565b611c1d600080516020615cd683398151915285606001516120e4565b61013954611c33906001600160a01b0316612cc3565b8015611655576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b611c8882610fb1565b611c9181612057565b610fe28383612061565b60606000611cab87890189615614565b509050611cba8b828686612e65565b9b9a5050505050505050505050565b60975460405163b2f918a160e01b8152609b546004820152609c546024820152609d546044820152609e546001600160a01b03818116606484015260a09190911d600b0b608483015290911660a482015260009081908190819073__$0d78a42341742155da77b97d7f993534c7$__9063b2f918a19060c401608060405180830381865af4158015611d5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8391906158c0565b935093509350935090919293565b606083336001600160a01b03821614801590611dd65750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15611df6573360405163087231bf60e31b8152600401610eae9190614b5c565b6097546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611e27903090600401614b5c565b602060405180830381865afa158015611e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6891906155fb565b6097546040516321437a5360e01b815291925073__$0d78a42341742155da77b97d7f993534c7$__916321437a5391611ed7917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b03909116908c903090600401615900565b602060405180830381865af4158015611ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1891906155fb565b506097546040516370a0823160e01b815260009183916001600160a01b03909116906370a0823190611f4e903090600401614b5c565b602060405180830381865afa158015611f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8f91906155fb565b611f99919061553e565b905080600003611fbc57604051630f6fa54560e41b815260040160405180910390fd5b611fd8878260006040518060200160405280600081525061293a565b50939695505050505050565b600080516020615d36833981519152611ffc81612057565b815161013a8190556020808401805161013b556040808601805161013c55815194855291519284019290925251908201527f220b9fb6f33ff05be83cf4d215109467b91026cf1f239e2acb4b7095cf09d5c590606001610cab565b6111ed8133612eb3565b600080516020615d7d83398151915282036120da576101435460405163058e524d60e11b81526001600160a01b0390911690630b1ca49a906120a7908490600401614b5c565b600060405180830381600087803b1580156120c157600080fd5b505af11580156120d5573d6000803e3d6000fd5b505050505b6111248282612f0c565b6111248282612135565b606061109f8686600b0b8686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061293a92505050565b600080516020615d7d83398151915282036121ae576101435460405163329b55b760e21b81526001600160a01b039091169063ca6d56dc9061217b908490600401614b5c565b600060405180830381600087803b15801561219557600080fd5b505af11580156121a9573d6000803e3d6000fd5b505050505b6111248282612f73565b604051635b69006f60e11b8152600080516020615cb683398151915260048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6d200de90602401602060405180830381865afa15801561222d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225191906158a3565b6001600160a01b0316826001600160a01b0316149050919050565b600080516020615d16833981519152546001600160a01b031690565b600061112481612057565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156122c657610fe283612ff9565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612320575060408051601f3d908101601f1916820190925261231d918101906155fb565b60015b6123835760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610eae565b600080516020615d1683398151915281146123f25760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610eae565b50610fe2838383613093565b60606124458786600b0b8686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061293a92505050565b98975050505050505050565b6000806000806000612462886130be565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e88890612496908b908b908b90600401615941565b608060405180830381865afa1580156124b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d79190615964565b929b919a509850909650945050505050565b600082815261013e6020526040808220805460ff191660011790556101395490516370a0823160e01b815282916001600160a01b0316906370a0823190612534903090600401614b5c565b602060405180830381865afa158015612551573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257591906155fb565b61013954909150600160a01b900460ff1660005b8460600151518110156127ee576000856060015182815181106125ae576125ae6159a2565b6020026020010151604001518380156125f157506000876060015184815181106125da576125da6159a2565b602002602001015160a001516001600160801b0316115b6126245761261f8760600151848151811061260e5761260e6159a2565b60200260200101516000015161322d565b612647565b8660600151838151811061263a5761263a6159a2565b602002602001015160a001515b6001600160801b031661265a9190615551565b905080156127db5761266c8186615568565b94508385111561268f5760405163701b93d160e11b815260040160405180910390fd5b612699858561553e565b93506126c6866060015183815181106126b4576126b46159a2565b602002602001015160800151826132e4565b867f66417923523a2d06a43299cb4e498d17eef686f73ae2484f05c36479f5ae5a6d876060015184815181106126fe576126fe6159a2565b60200260200101516000015188606001518581518110612720576127206159a2565b60200260200101516020015189606001518681518110612742576127426159a2565b6020026020010151604001518a606001518781518110612764576127646159a2565b6020026020010151606001518b606001518881518110612786576127866159a2565b6020026020010151608001518c6060015189815181106127a8576127a86159a2565b60200260200101516080015151886127c091906159b8565b6040516127d2969594939291906159da565b60405180910390a25b50806127e681615a37565b915050612589565b50847fdc780326abc7aa2bf7cfbd02de3cdd5c8020124228dbcbc133d6bcbd74a784cc8460405161282191815260200190565b60405180910390a25050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916128949190615a50565b6000604051808303816000865af19150503d80600081146128d1576040519150601f19603f3d011682016040523d82523d6000602084013e6128d6565b606091505b50915091508180156129005750805115806129005750808060200190518101906129009190615a6c565b6129325760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b6044820152606401610eae565b505050505050565b8051609754829115159073__$0d78a42341742155da77b97d7f993534c7$__9063891d61cc90609b906001600160a01b03166129746114a8565b8561297f5789612982565b60005b6040516001600160e01b031960e087901b16815260048101949094526001600160a01b03928316602485015291166044830152606482015260840160006040518083038186803b1580156129d557600080fd5b505af41580156129e9573d6000803e3d6000fd5b505060975460009250612a0791506001600160a01b031688306133f4565b6001600160a01b0388166000908152609860205260409020549091508215612bf557600082600b0b138015612a4457506459df649400600b83900b125b15612a6757604051624963df60e91b8152600b83900b6004820152602401610eae565b6001600160a01b038816600090815260986020526040902060010180546001600160e01b031916600160601b426001600160801b038116919091026001600160601b031916919091176001600160601b03851617909155612ac990879061553e565b612adc906001600160601b038916615551565b6001600160a01b03891660009081526098602052604081208054909190612b04908490615568565b909155505060975473__$0d78a42341742155da77b97d7f993534c7$__90631f8f04bf90609990609b906001600160a01b0316612b3f6114a8565b612b498d89615a89565b8b6040518763ffffffff1660e01b8152600401612b6b96959493929190615ab6565b600060405180830381865af4158015612b88573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bb09190810190615af9565b609754909450612bc9906001600160a01b031630613482565b609e80546001600160601b0392909216600160a01b026001600160a01b03909216919091179055612c2c565b6001600160a01b03881660009081526098602052604081208054899290612c1d908490615568565b90915550612c2c905087613501565b6001600160a01b0388166000818152609860205260409020547f6342e11b65ccb38a3bb259be9cda846c74ad52b36b62a2ee4799dc3db63a04a390839086612c75576000612c77565b8a5b604080519384526020840192909252600b90810b8383015286900b60608301528615156080830152519081900360a00190a2505050949350505050565b6001600160a01b03163b151590565b6001600160a01b038116612cea5760405163538ba4f960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b03838116919091179091556040516315a722b960e31b8152600160048201819052917f0000000000000000000000000000000000000000000000000000000000000000169063ad3915c890602401600060405180830381600087803b158015612d6757600080fd5b505af1158015612d7b573d6000803e3d6000fd5b50506040805180820182527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168082529151635b69006f60e11b8152600080516020615cb6833981519152600482015290935060208401925063b6d200de90602401602060405180830381865afa158015612e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2691906158a3565b6001600160a01b039081169091528151609980546001600160a01b0319908116928416929092179055602090920151609a805490931691161790555050565b6060612eaa8460008086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061293a92505050565b95945050505050565b612ebd8282611759565b61112457612eca8161363d565b612ed583602061364f565b604051602001612ee6929190615b41565b60408051601f198184030181529082905262461bcd60e51b8252610eae91600401614a72565b612f168282611759565b156111245760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b612f7d8282611759565b6111245760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612fb53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61300281612cb4565b6130645760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610eae565b600080516020615d1683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61309c836137ea565b6000825111806130a95750805b15610fe2576130b8838361382a565b50505050565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fb969d79d88acd02d04ed7ee7d43b949e7daf093d363abcfbbc43dfdfd1ce969a546001600160a01b0381166131fc576001600160a01b03821661318357826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561315c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318091906158a3565b91505b604051635b69006f60e11b8152600080516020615cb683398151915260048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa1580156131d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f991906158a3565b90505b6001600160a01b03821661321257613212615bb0565b6001600160a01b03811661322857613228615bb0565b915091565b6000805b610134548110156132db57610134805482908110613251576132516159a2565b90600052602060002090601091828204019190066002029054906101000a900461ffff1661ffff168361ffff16036132c957610135805482908110613298576132986159a2565b90600052602060002090600291828204019190066010029054906101000a90046001600160801b0316915050919050565b806132d381615a37565b915050613231565b50600092915050565b60008251826001600160801b03166132fc91906159b8565b90506000805b84518110156133ea576000613330868381518110613322576133226159a2565b602002602001015185613913565b905080156133865761337586838151811061334d5761334d6159a2565b6020908102919091010151610139546001600160a01b0316906001600160801b038716613c06565b61337f8484615bc6565b92506133d7565b7f617c38e0fa04973365b7abb47a8f354a5b3fbe3ea04b8a0649580d208a88cc608683815181106133b9576133b96159a2565b60200260200101516040516133ce9190614b5c565b60405180910390a15b50806133e281615a37565b915050613302565b506130b881613c5c565b600080613400856130be565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e8889061343490889088908890600401615941565b608060405180830381865afa158015613451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134759190615964565b5090979650505050505050565b60008061348e846130be565b60405163e8e7e2d160e01b81529092506001600160a01b038316915063e8e7e2d1906134c090879087906004016150d9565b602060405180830381865afa1580156134dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119669190615bed565b600061350b6114a8565b6001600160a01b03160361351c5750565b60006135266114a8565b6001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa158015613563573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358791906158a3565b90506001600160a01b03811661359b575050565b60006127106135a86114a8565b6001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190615c0a565b6136199063ffffffff1685615551565b61362391906159b8565b609754909150610fe2906001600160a01b03168383613e32565b6060610ce86001600160a01b03831660145b6060600061365e836002615551565b613669906002615568565b6001600160401b038111156136805761368061444d565b6040519080825280601f01601f1916602001820160405280156136aa576020820181803683370190505b509050600360fc1b816000815181106136c5576136c56159a2565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106136f4576136f46159a2565b60200101906001600160f81b031916908160001a9053506000613718846002615551565b613723906001615568565b90505b600181111561379b576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613757576137576159a2565b1a60f81b82828151811061376d5761376d6159a2565b60200101906001600160f81b031916908160001a90535060049490941c9361379481615c27565b9050613726565b508315610e425760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610eae565b6137f381612ff9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061383583612cb4565b6138905760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610eae565b600080846001600160a01b0316846040516138ab9190615a50565b600060405180830381855af49150503d80600081146138e6576040519150601f19603f3d011682016040523d82523d6000602084013e6138eb565b606091505b5091509150612eaa8282604051806060016040528060278152602001615d5660279139613f35565b600061392e8360405180602001604052806000815250613f4e565b151560000361393f57506000610ce8565b60006139496140d4565b6001600160a01b03851660009081526101406020526040902060010154909150429061398890600160801b90046001600160401b031662015180615c3e565b6001600160401b031610156139ce576001600160a01b03841660009081526101406020526040902080546001600160801b0319166001600160801b038516179055613a25565b6001600160a01b0384166000908152610140602052604081208054859290613a009084906001600160801b0316615bc6565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038416600090815261014060205260409020600101546001600160401b03808316600160c01b909204161015613a92576001600160a01b03841660009081526101406020526040902080546001600160801b03808616600160801b029116179055613af3565b6001600160a01b0384166000908152610140602052604090208054849190601090613ace908490600160801b90046001600160801b0316615bc6565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b0384166000908152610140602052604081206001018054859290613b289084906001600160801b0316615bc6565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b0386166000908152610140602052604090206001810180548316600160801b426001600160401b03908116919091026001600160c01b031691909117600160c01b9187169190910217905561013c54905490911611905080613bdc575061013b546001600160a01b03851660009081526101406020526040902054600160801b90046001600160801b0316115b15613bfc5783604051636e661e3360e11b8152600401610eae9190614b5c565b5060019392505050565b610fe28363a9059cbb60e01b8484604051602401613c25929190615c5e565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526140e8565b6000613c666140d4565b610142549091504290613c8c90600160801b90046001600160401b031662015180615c3e565b6001600160401b03161015613cbc5761014180546001600160801b0319166001600160801b038416179055613d00565b6101418054839190600090613cdb9084906001600160801b0316615bc6565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b610142546001600160401b03808316600160c01b909204161015613d3e5761014180546001600160801b03808516600160801b029116179055613d89565b6101418054839190601090613d64908490600160801b90046001600160801b0316615bc6565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6101428054839190600090613da89084906001600160801b0316615bc6565b82546101009290920a6001600160801b0381810219909316918316021790915561014280548216600160801b426001600160401b0390811682026001600160c01b031692909217600160c01b928716929092029190911790915561013a5461014154919091049091161115905061112457604051639803f99760e01b815260040160405180910390fd5b600080846001600160a01b031663a9059cbb60e01b8585604051602401613e5a929190615c5e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051613e989190615a50565b6000604051808303816000865af19150503d8060008114613ed5576040519150601f19603f3d011682016040523d82523d6000602084013e613eda565b606091505b5091509150818015613f04575080511580613f04575080806020019051810190613f049190615a6c565b6116555760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610eae565b60608315613f44575081610e42565b610e4283836141ba565b6000613f68600080516020615d7d83398151915284611759565b15613f7557506001610ce8565b610138546001600160a01b03161561401657610138546040516316874da360e11b81526000916001600160a01b031690632d0e9b4690613fb9908790600401614b5c565b602060405180830381865afa158015613fd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ffa91906158a3565b90506001600160a01b038116614014576000915050610ce8565b505b610137546001600160a01b0316156140b357610137546040516356a42afd60e11b81526001600160a01b039091169063ad4855fa9061405f903090339088908890600401615c77565b6020604051808303816000875af115801561407e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a29190615a6c565b15156000036140b357506000610ce8565b6140cb600080516020615d7d83398151915284612135565b50600192915050565b60006140e362278d00426159b8565b905090565b600061413d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166141e49092919063ffffffff16565b805190915015610fe2578080602001905181019061415b9190615a6c565b610fe25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610eae565b8151156141ca5781518083602001fd5b8060405162461bcd60e51b8152600401610eae9190614a72565b6060611966848460008585600080866001600160a01b0316858760405161420b9190615a50565b60006040518083038185875af1925050503d8060008114614248576040519150601f19603f3d011682016040523d82523d6000602084013e61424d565b606091505b509150915061109f87838387606083156142c65782516000036142bf5761427385612cb4565b6142bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610eae565b5081611966565b61196683836141ba565b82805482825590600052602060002090600f016010900481019282156143695791602002820160005b8382111561433957835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026142f9565b80156143675782816101000a81549061ffff0219169055600201602081600101049283019260010302614339565b505b5061437592915061441f565b5090565b828054828255906000526020600020906001016002900481019282156143695791602002820160005b838211156143ec57835183826101000a8154816001600160801b0302191690836001600160801b031602179055509260200192601001602081600f010492830192600103026143a2565b80156143675782816101000a8154906001600160801b030219169055601001602081600f010492830192600103026143ec565b5b808211156143755760008155600101614420565b60006020828403121561444657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b03811182821017156144865761448661444d565b60405290565b604051608081016001600160401b03811182821017156144865761448661444d565b60405160c081016001600160401b03811182821017156144865761448661444d565b604051601f8201601f191681016001600160401b03811182821017156144f8576144f861444d565b604052919050565b63ffffffff811681146111ed57600080fd5b803561451d81614500565b919050565b60006001600160401b0382111561453b5761453b61444d565b5060051b60200190565b61ffff811681146111ed57600080fd5b803561451d81614545565b600082601f83011261457157600080fd5b8135602061458661458183614522565b6144d0565b82815260059290921b840181019181810190868411156145a557600080fd5b8286015b848110156145c95780356145bc81614545565b83529183019183016145a9565b509695505050505050565b6001600160801b03811681146111ed57600080fd5b803561451d816145d4565b600082601f83011261460557600080fd5b8135602061461561458183614522565b82815260059290921b8401810191818101908684111561463457600080fd5b8286015b848110156145c957803561464b816145d4565b8352918301918301614638565b6001600160a01b03811681146111ed57600080fd5b803561451d81614658565b80151581146111ed57600080fd5b803561451d81614678565b600061010082840312156146a457600080fd5b6146ac614463565b90506146b782614512565b815260208201356001600160401b03808211156146d357600080fd5b6146df85838601614560565b602084015260408401359150808211156146f857600080fd5b50614705848285016145f4565b6040830152506147176060830161466d565b60608201526147286080830161466d565b608082015261473960a0830161466d565b60a082015261474a60c0830161466d565b60c082015261475b60e08301614686565b60e082015292915050565b60006020828403121561477857600080fd5b81356001600160401b0381111561478e57600080fd5b61196684828501614691565b6000602082840312156147ac57600080fd5b81356001600160e01b031981168114610e4257600080fd5b60008083601f8401126147d657600080fd5b5081356001600160401b038111156147ed57600080fd5b60208301915083602082850101111561480557600080fd5b9250929050565b60008060008060006080868803121561482457600080fd5b853561482f81614658565b9450602086013561483f81614658565b93506040860135925060608601356001600160401b0381111561486157600080fd5b61486d888289016147c4565b969995985093965092949392505050565b60006020828403121561489057600080fd5b8135610e4281614658565b60006001600160401b038211156148b4576148b461444d565b50601f01601f191660200190565b600082601f8301126148d357600080fd5b81356148e16145818261489b565b8181528460208386010111156148f657600080fd5b816020850160208301376000918101602001919091529392505050565b600060a0828403121561492557600080fd5b60405160a081016001600160401b0380821183831017156149485761494861444d565b816040528293508435915061495c82614658565b818352602085013560208401526040850135604084015260608501356060840152608085013591508082111561499157600080fd5b5061499e858286016148c2565b6080830152505092915050565b6000806000606084860312156149c057600080fd5b83356001600160401b03808211156149d757600080fd5b6149e387838801614913565b9450602086013591506149f582614658565b90925060408501359080821115614a0b57600080fd5b50614a18868287016148c2565b9150509250925092565b60005b83811015614a3d578181015183820152602001614a25565b50506000910152565b60008151808452614a5e816020860160208601614a22565b601f01601f19169290920160200192915050565b602081526000610e426020830184614a46565b600080600080600080600080600060c08a8c031215614aa357600080fd5b8935614aae81614658565b985060208a0135614abe81614658565b975060408a0135965060608a01356001600160401b0380821115614ae157600080fd5b614aed8d838e016147c4565b909850965060808c0135915080821115614b0657600080fd5b614b128d838e016147c4565b909650945060a08c0135915080821115614b2b57600080fd5b50614b388c828d016147c4565b915080935050809150509295985092959850929598565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b60008060408385031215614b8357600080fd5b823591506020830135614b9581614658565b809150509250929050565b600080600080600080600060a0888a031215614bbb57600080fd5b8735614bc681614658565b96506020880135614bd681614658565b95506040880135945060608801356001600160401b0380821115614bf957600080fd5b614c058b838c016147c4565b909650945060808a0135915080821115614c1e57600080fd5b50614c2b8a828b016147c4565b989b979a50959850939692959293505050565b60008060408385031215614c5157600080fd5b8235614c5c81614658565b915060208301356001600160401b03811115614c7757600080fd5b614c83858286016148c2565b9150509250929050565b600082601f830112614c9e57600080fd5b81356020614cae61458183614522565b82815260059290921b84018101918181019086841115614ccd57600080fd5b8286015b848110156145c9578035614ce481614658565b8352918301918301614cd1565b600060808284031215614d0357600080fd5b614d0b61448c565b90508135614d1881614500565b8152602082810135614d2981614545565b8282015260408301356001600160401b0380821115614d4757600080fd5b614d53868387016148c2565b60408501526060850135915080821115614d6c57600080fd5b818501915085601f830112614d8057600080fd5b8135614d8e61458182614522565b81815260059190911b83018401908481019088831115614dad57600080fd5b8585015b83811015614e7d57803585811115614dc95760008081fd5b860160c0818c03601f1901811315614de15760008081fd5b614de96144ae565b614df48a8401614555565b8152614e0260408401614512565b8a82015260608301356040820152608083013588811115614e235760008081fd5b614e318e8c838701016148c2565b60608301525060a08084013589811115614e4b5760008081fd5b614e598f8d83880101614c8d565b608084015250614e6a8385016145e9565b9082015285525050918601918601614db1565b50606087015250939695505050505050565b600080600060608486031215614ea457600080fd5b8335614eaf81614658565b925060208401356001600160401b03811115614eca57600080fd5b614ed686828701614cf1565b9250506040840135614ee781614678565b809150509250925092565b60008060408385031215614f0557600080fd5b8235915060208301356001600160401b03811115614f2257600080fd5b614c8385828601614cf1565b600080600060608486031215614f4357600080fd5b8335614f4e81614658565b92506020840135915060408401356001600160401b03811115614f7057600080fd5b614a18868287016148c2565b60008060008060608587031215614f9257600080fd5b8435614f9d81614658565b93506020850135925060408501356001600160401b03811115614fbf57600080fd5b614fcb878288016147c4565b95989497509550505050565b600060208284031215614fe957600080fd5b81356001600160401b03811115614fff57600080fd5b611966848285016148c2565b60006060828403121561501d57600080fd5b604051606081016001600160401b038111828210171561503f5761503f61444d565b80604052508091508235815260208301356020820152604083013560408201525092915050565b60008060008060c0858703121561507c57600080fd5b843561508781614658565b935060208501356001600160401b038111156150a257600080fd5b6150ae87828801614691565b9350506150be866040870161500b565b915060a08501356150ce81614658565b939692955090935050565b6001600160a01b0392831681529116602082015260400190565b60008060006060848603121561510857600080fd5b833561511381614658565b925060208401356001600160401b038082111561512f57600080fd5b61513b87838801614913565b93506040860135915080821115614a0b57600080fd5b60006060828403121561516357600080fd5b610e42838361500b565b600081518084526020808501945080840160005b838110156151a157815161ffff1687529582019590820190600101615181565b509495945050505050565b600081518084526020808501945080840160005b838110156151a15781516001600160801b0316875295820195908201906001016151c0565b6020815263ffffffff82511660208201526000602083015161010080604085015261521461012085018361516d565b91506040850151601f1985840301606086015261523183826151ac565b92505060608501516152466080860182614b4f565b50608085015161525960a0860182614b4f565b5060a085015161526c60c0860182614b4f565b5060c085015161527f60e0860182614b4f565b5060e0850151801515858301525090949350505050565b805161451d81614500565b805161451d81614545565b60006152ba6145818461489b565b90508281528383830111156152ce57600080fd5b610e42836020830184614a22565b600082601f8301126152ed57600080fd5b610e42838351602085016152ac565b600082601f83011261530d57600080fd5b8151602061531d61458183614522565b82815260059290921b8401810191818101908684111561533c57600080fd5b8286015b848110156145c957805161535381614658565b8352918301918301615340565b805161451d816145d4565b6000602080838503121561537e57600080fd5b82516001600160401b038082111561539557600080fd5b90840190608082870312156153a957600080fd5b6153b161448c565b82516153bc81614500565b8152828401516153cb81614545565b818501526040830151828111156153e157600080fd5b6153ed888286016152dc565b60408301525060608301518281111561540557600080fd5b80840193505086601f84011261541a57600080fd5b825161542861458182614522565b81815260059190911b8401850190858101908983111561544757600080fd5b8686015b838110156155155780518681111561546257600080fd5b870160c0818d03601f190112156154795760008081fd5b6154816144ae565b61548c8a83016152a1565b815261549a60408301615296565b8a820152606082015160408201526080820151888111156154bb5760008081fd5b6154c98e8c838601016152dc565b60608301525060a080830151898111156154e35760008081fd5b6154f18f8d838701016152fc565b60808401525061550360c08401615360565b9082015284525091870191870161544b565b5060608401525090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ce857610ce8615528565b8082028115828204841417610ce857610ce8615528565b80820180821115610ce857610ce8615528565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526000608082015160a0608085015261196660a0850182614a46565b600060018060a01b038087168352608060208401526155e2608084018761557b565b9481166040840152929092166060909101525092915050565b60006020828403121561560d57600080fd5b5051919050565b6000806040838503121561562757600080fd5b823561563281614658565b91506020830135614b9581614658565b80600b0b81146111ed57600080fd5b6000806040838503121561566457600080fd5b823561566f81615642565b946020939093013593505050565b6020808252602c90820152600080516020615cf683398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020615cf683398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000806040838503121561570457600080fd5b823591506020830135614b9581615642565b600081518084526020808501945080840160005b838110156151a15781516001600160a01b03168752958201959082019060010161572a565b6000608063ffffffff80845116855260208085015161ffff80821683890152604091508187015185838a0152615787868a0182614a46565b90506060808901518a8303828c01528281518085528785019150878160051b860101888401935060005b8281101561583557601f19878303018452845160c08982511684528c8c830151168c8501528a8201518b8501528782015181898601526157f382860182614a46565b9150508d8201518482038f86015261580b8282615716565b60a0938401516001600160801b0316959093019490945250948a0194938a019391506001016157b1565b509d9c50505050505050505050505050565b6001600160a01b038416815260806020820181905260009061586b9083018561574f565b9215156040830152508082036060909101526000815260200192915050565b828152604060208201526000611966604083018461574f565b6000602082840312156158b557600080fd5b8151610e4281614658565b600080600080608085870312156158d657600080fd5b845193506020850151925060408501516158ef81615642565b60608601519092506150ce81615642565b600060018060a01b03808816835260a0602084015261592260a084018861557b565b9581166040840152938416606083015250911660809091015292915050565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000806000806080858703121561597a57600080fd5b84519350602085015161598c81615642565b6040860151606090960151949790965092505050565b634e487b7160e01b600052603260045260246000fd5b6000826159d557634e487b7160e01b600052601260045260246000fd5b500490565b61ffff8716815263ffffffff8616602082015284604082015260c060608201526000615a0960c0830186614a46565b8281036080840152615a1b8186615716565b91505060018060801b03831660a0830152979650505050505050565b600060018201615a4957615a49615528565b5060010190565b60008251615a62818460208701614a22565b9190910192915050565b600060208284031215615a7e57600080fd5b8151610e4281614678565b600b82810b9082900b0360016001605f1b0319811260016001605f1b0382131715610ce857610ce8615528565b868152602081018690526001600160a01b03858116604083015284166060820152600b83900b608082015260c060a0820181905260009061244590830184614a46565b600060208284031215615b0b57600080fd5b81516001600160401b03811115615b2157600080fd5b8201601f81018413615b3257600080fd5b611966848251602084016152ac565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351615b73816017850160208801614a22565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615ba4816028840160208801614a22565b01602801949350505050565b634e487b7160e01b600052600160045260246000fd5b6001600160801b03818116838216019080821115615be657615be6615528565b5092915050565b600060208284031215615bff57600080fd5b8151610e4281615642565b600060208284031215615c1c57600080fd5b8151610e4281614500565b600081615c3657615c36615528565b506000190190565b6001600160401b03818116838216019080821115615be657615be6615528565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038581168252848116602083015283166040820152608060608201819052600090615cab90830184614a46565b969550505050505056fea9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3f0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc946756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564829b824e2329e205435d941c9f13baf578548505283d29261236d8e6596d4636a2646970667358221220bf205a4f48d1e573372eb4ba11385e546bb29a702f508785576892d71feeacca64736f6c63430008130033";
|
|
2110
|
+
"0x60e06040523060c0523480156200001557600080fd5b5060405162005f7138038062005f71833981016040819052620000389162000098565b6001600160a01b038216608081905282908290620000695760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b031660a05250620000d7915050565b6001600160a01b03811681146200009557600080fd5b50565b60008060408385031215620000ac57600080fd5b8251620000b9816200007f565b6020840151909250620000cc816200007f565b809150509250929050565b60805160a05160c051615df36200017e60003960008181611096015281816110d60152818161147f015281816114bf015261153701526000818161092c01528181610e4d0152612150015260008181610bd401528181610dcf01528181610f58015281816115e501528181611744015281816118e801528181611dba01528181612066015281816124090152818161271b015281816127b2015261281c0152615df36000f3fe60806040526004361061025a5760003560e01c80630150aefb1461025f57806301ffc9a7146102a55780630947e8c7146102c55780630c710776146102ff578063150b7a021461032b57806319805538146103645780631a2a84b31461039d5780631bb15f3d146103cb5780631db128c714610477578063230dbd29146104a4578063248a9ca3146104c45780632b4116f7146104e45780632f2ff15d1461051157806330d9c9151461053357806336568abe146105535780633659cfe614610573578063379607f51461059357806347ccca02146105b35780634b1e337f146105d45780634f1ef286146105f457806352d1902d1461060757806353c11f991461061c578063586097541461063c5780635ab1bd531461065c5780635f9e7d7714610671578063647c75e21461069157806372ca8a3e1461070257806376ba085b146107225780637b10399914610742578063860aefcf14610763578063884d1f40146107a057806391d14854146107c05780639e83995f146107e05780639f351ce4146108005780639f8fddd214610820578063a10f469e14610840578063a217fddf14610862578063a4c0ed3614610877578063ae82720014610897578063bcb4546f146108aa578063c2e11e3f146108cc578063c31c9c071461091a578063d3112b2e1461094e578063d539139314610983578063d547741f146109a5578063d80528ae146109c5578063d86ed3e514610a56578063dc61d5c214610a76578063def482a414610ac9578063e06174e414610ae9578063ec87621c14610b80578063f3d5e34814610ba2578063f437bc5914610bc2575b600080fd5b34801561026b57600080fd5b5061029061027a366004613dad565b61013e6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156102b157600080fd5b506102906102c0366004613dc6565b610bf6565b3480156102d157600080fd5b50610143546102ea90600160a01b900463ffffffff1681565b60405163ffffffff909116815260200161029c565b34801561030b57600080fd5b506103186459df64940081565b604051600b9190910b815260200161029c565b34801561033757600080fd5b5061034b610346366004613e5d565b610c2d565b6040516001600160e01b0319909116815260200161029c565b34801561037057600080fd5b50610379610ce8565b604080516001600160a01b03909316835263ffffffff90911660208301520161029c565b3480156103a957600080fd5b506103bd6103b8366004613edc565b610d0d565b60405190815260200161029c565b3480156103d757600080fd5b506104336103e6366004613edc565b61014060205260009081526040902080546001909101546001600160801b0380831692600160801b90819004821692918216916001600160401b03918104821691600160c01b9091041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161029c565b34801561048357600080fd5b506104976104923660046140ce565b610dad565b60405161029c9190614195565b3480156104b057600080fd5b506104976104bf3660046141a8565b610ece565b3480156104d057600080fd5b506103bd6104df366004613dad565b610f15565b3480156104f057600080fd5b50609754610504906001600160a01b031681565b60405161029c9190614272565b34801561051d57600080fd5b5061053161052c366004614286565b610f2a565b005b34801561053f57600080fd5b5061049761054e3660046142b6565b610f4b565b34801561055f57600080fd5b5061053161056e366004614286565b61100e565b34801561057f57600080fd5b5061053161058e366004613edc565b61108c565b34801561059f57600080fd5b506105316105ae366004613dad565b611154565b3480156105bf57600080fd5b5061013d54610504906001600160a01b031681565b3480156105e057600080fd5b506105316105ef3660046145eb565b6111cc565b610531610602366004614673565b611475565b34801561061357600080fd5b506103bd61152a565b34801561062857600080fd5b506104976106373660046141a8565b6115d8565b34801561064857600080fd5b506105316106573660046146c2565b6116b5565b34801561066857600080fd5b50610504611727565b34801561067d57600080fd5b5061049761068c3660046142b6565b611737565b34801561069d57600080fd5b506106db6106ac366004613edc565b60986020526000908152604090208054600190910154600b81900b90600160601b90046001600160801b031683565b60408051938452600b9290920b60208401526001600160801b03169082015260600161029c565b34801561070e57600080fd5b5061029061071d366004613edc565b61181c565b34801561072e57600080fd5b5061053161073d3660046148f0565b611830565b34801561074e57600080fd5b5061014354610504906001600160a01b031681565b34801561076f57600080fd5b5061013a5461013b5461013c5461078592919083565b6040805193845260208401929092529082015260600161029c565b3480156107ac57600080fd5b506104976107bb3660046142b6565b6118db565b3480156107cc57600080fd5b506102906107db366004614286565b6119d8565b3480156107ec57600080fd5b506105316107fb366004614953565b611a03565b34801561080c57600080fd5b5061053161081b366004614999565b611bd3565b34801561082c57600080fd5b5061049761083b3660046149d5565b611d98565b34801561084c57600080fd5b506103bd600080516020615d9e83398151915281565b34801561086e57600080fd5b506103bd600081565b34801561088357600080fd5b50610290610892366004614a23565b611e52565b6105316108a5366004614a7e565b611ec9565b3480156108b657600080fd5b506103bd600080516020615cd783398151915281565b3480156108d857600080fd5b506101415461014254610433916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b34801561092657600080fd5b506105047f000000000000000000000000000000000000000000000000000000000000000081565b34801561095a57600080fd5b50609954609a54610975916001600160a01b03908116911682565b60405161029c929190614ab2565b34801561098f57600080fd5b506103bd600080516020615cf783398151915281565b3480156109b157600080fd5b506105316109c0366004614286565b611f4f565b3480156109d157600080fd5b50609b54609c54609d54609e54609f5460a05460a154610a0c969594936001600160a01b0380821694600160a01b909204600b0b9391169188565b604080519889526020890197909752958701949094526001600160a01b039283166060870152600b9190910b60808601521660a084015260c083015260e08201526101000161029c565b348015610a6257600080fd5b50610497610a713660046141a8565b611f6b565b348015610a8257600080fd5b50610a8b611f99565b604080519788526020880196909652948601939093526060850191909152600b90810b608085015290810b60a08401520b60c082015260e00161029c565b348015610ad557600080fd5b50610497610ae4366004614acc565b612044565b348015610af557600080fd5b506101335461013654610137546101385461013954610b389463ffffffff16936001600160a01b039081169381169281169190811690600160a01b900460ff1686565b6040805163ffffffff90971687526001600160a01b039586166020880152938516938601939093529083166060850152919091166080830152151560a082015260c00161029c565b348015610b8c57600080fd5b506103bd600080516020615d5783398151915281565b348015610bae57600080fd5b50610531610bbd366004614b2a565b612297565b348015610bce57600080fd5b506105047f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160e01b03198216637965db0b60e01b1480610c2757506301ffc9a760e01b6001600160e01b03198316145b92915050565b61013d546040516302b5313d60e21b81526004810185905260009182916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015610c7c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ca49190810190614c1b565b61013354815191925063ffffffff918216911614610cd55760405163f26722ad60e01b815260040160405180910390fd5b50630a85bd0160e11b9695505050505050565b61013654610143546001600160a01b0390911691600160a01b90910463ffffffff1690565b6001600160a01b0381166000908152609860209081526040808320815160608101835281548152600190910154600b81900b938201849052600160601b90046001600160801b031691810191909152908203610d6a575192915050565b6040810151610d82906001600160801b031642614dee565b81602001516001600160601b0316610d9a9190614e01565b8151610da69190614e18565b9392505050565b606082336001600160a01b03821614801590610df25750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15610e1b573360405163087231bf60e31b8152600401610e129190614272565b60405180910390fd5b6097546040516358c0dacb60e01b815273__$0d78a42341742155da77b97d7f993534c7$__916358c0dacb91610e83917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b0316908a90600401614e70565b602060405180830381865af4158015610ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec49190614eab565b5091949350505050565b60606000610ede87890189614ec4565b509050600080610ef087890189614f01565b91509150610f028d8484848a8a61230f565b93505050505b9998505050505050505050565b60009081526065602052604090206001015490565b610f3382610f15565b610f3c81612356565b610f468383612360565b505050565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f9657604051632f2d36a760e01b815260040160405180910390fd5b610f9f876123e3565b610fc25750604080518082019091526002815261060f60f31b6020820152611003565b610fcb8861181c565b610fe857604051631ea25bab60e31b815260040160405180910390fd5b50604080518082019091526002815261060f60f31b60208201525b979650505050505050565b6001600160a01b038116331461107e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610e12565b6110888282612497565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110d45760405162461bcd60e51b8152600401610e1290614f1f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661110661251a565b6001600160a01b03161461112c5760405162461bcd60e51b8152600401610e1290614f59565b61113581612536565b6040805160008082526020820190925261115191839190612541565b50565b61013d546040516302b5313d60e21b8152600481018390526111519183916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa1580156111a4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261081b9190810190614c1b565b600054610100900460ff16158080156111ec5750600054600160ff909116105b8061120d57506111fb306126ac565b15801561120d575060005460ff166001145b6112705760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e12565b6000805460ff191660011790558015611293576000805461ff0019166101001790555b61014380546001600160a01b0319166001600160a01b0384161790558451610133805463ffffffff191663ffffffff90921691909117815560208087015180518893926112e69261013492910190613c49565b5060408201518051611302916002840191602090910190613cf2565b5060608201516003820180546001600160a01b03199081166001600160a01b03938416179091556080840151600484018054831691841691909117905560a0840151600584018054831691841691909117905560c08401516006909301805460e0909501519383166001600160a81b031990951694909417600160a01b931515840217909355865161013a55602087015161013b55604087015161013c5561013d805490931690891617909155610143805463ffffffff60a01b191663ffffffff86169092029190911790556113d96000336126bb565b6113f5600080516020615d5783398151915286606001516126bb565b611411600080516020615cf783398151915286606001516126bb565b61013954611427906001600160a01b03166126c5565b801561146d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114bd5760405162461bcd60e51b8152600401610e1290614f1f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114ef61251a565b6001600160a01b0316146115155760405162461bcd60e51b8152600401610e1290614f59565b61151e82612536565b61108882826001612541565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115c55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610e12565b50600080516020615d3783398151915290565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415806116185750611616896123e3565b155b8061162957506116278a61181c565b155b1561166d5782828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610f0892505050565b60008061167c888a018a614ec4565b9092509050600080611690888a018a614f93565b915091506116a38e858584868c8c6128f6565b9e9d5050505050505050505050505050565b6097546040516332d4cd0360e11b815273__$0d78a42341742155da77b97d7f993534c7$__916365a99a06916116fb916001600160a01b03169086908690600401614fb8565b60006040518083038186803b15801561171357600080fd5b505af415801561146d573d6000803e3d6000fd5b610143546001600160a01b031690565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415806117775750611775876123e3565b155b8061178857506117868861181c565b155b156117ac5750604080518082019091526002815261060f60f31b6020820152611003565b6000806117bb86880188614ec4565b90925090506000806117d76001600160a01b038d168585612949565b50509150915081816040516020016117fc929190918252600b0b602082015260400190565b604051602081830303815290604052945050505050979650505050505050565b6097546001600160a01b0390811691161490565b600080516020615cf783398151915261184881612356565b61013d546040516321aa1d2160e11b81526000916001600160a01b0316906343543a429061187f908890889060019060040161510d565b6020604051808303816000875af115801561189e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c29190614eab565b905082156118d4576118d48185611bd3565b5050505050565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461192657604051632f2d36a760e01b815260040160405180910390fd5b61192f876123e3565b6119525750604080518082019091526002815261060f60f31b6020820152611003565b61195b8861181c565b61197857604051631ea25bab60e31b815260040160405180910390fd5b600061198685870187614ec4565b5090506000806119a06001600160a01b038c168430612949565b505060408051600b9290920b60208301528181019290925281518082038301815260609091019091529b9a5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020615d57833981519152611a1b81612356565b610143805463ffffffff808516600160a01b0263ffffffff60a01b19909216919091179091556101335484518216911614611a6957604051630f91888160e01b815260040160405180910390fd5b60608301516001600160a01b0316611a945760405163890bc98f60e01b815260040160405180910390fd5b61013654611aad906000906001600160a01b0316612497565b8251610133805463ffffffff191663ffffffff9092169190911781556020808501518051869392611ae49261013492910190613c49565b5060408201518051611b00916002840191602090910190613cf2565b506060828101516003830180546001600160a01b039283166001600160a01b031991821617909155608085015160048501805491841691831691909117905560a08501516005850180549184169190921617905560c08401516006909301805460e0909501511515600160a01b026001600160a81b03199095169390911692909217929092179055830151611b97906000906126bb565b7f3eed38e4b04ae182994f6ef05c58a3987f571a66d6860d9046621cc204f407a083604051611bc691906151c8565b60405180910390a1505050565b61013d5460405163049b73f560e31b81526001600160a01b03909116906324db9fa890611c069085908590600401615279565b600060405180830381865afa158015611c23573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c4b9190810190614c1b565b50600082815261013e602052604090205460ff1615611c80576040516330e51df560e11b815260048101839052602401610e12565b600082815261013e60205260408120805460ff191660011790555b816060015151811015611d4e5760005b82606001518281518110611cc157611cc1615292565b60200260200101516080015151811015611d3b57611d2883606001518381518110611cee57611cee615292565b6020026020010151608001518281518110611d0b57611d0b615292565b6020026020010151604051806020016040528060008152506129e1565b5080611d33816152a8565b915050611cab565b5080611d46816152a8565b915050611c9b565b5060405163cb22f4ff60e01b815273__$b588313394510b77eaf869f89af95096f1$__9063cb22f4ff906116fb906101419061013a906101409061013390899089906004016157c8565b606083336001600160a01b03821614801590611ddd5750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15611dfd573360405163087231bf60e31b8152600401610e129190614272565b83600003611e1e57604051630f6fa54560e41b815260040160405180910390fd5b609754611e36906001600160a01b0316863087612b65565b610ec48585600060405180602001604052806000815250612c6b565b6097546000906001600160a01b03163314611e8057604051630ce706f760e41b815260040160405180910390fd5b83600003611ea157604051630f6fa54560e41b815260040160405180910390fd5b611ebd8585600060405180602001604052806000815250612c6b565b50600195945050505050565b6101435460408051638abf607760e01b815290516000926001600160a01b031691638abf60779160048083019260209291908290030181865afa158015611f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3891906158e6565b9050611f4381612536565b61108881836000612541565b611f5882610f15565b611f6181612356565b610f468383612497565b60606000611f7b87890189614ec4565b509050611f8a8b828686613313565b9b9a5050505050505050505050565b60975460405163b2f918a160e01b815260009182918291829182918291829173__$0d78a42341742155da77b97d7f993534c7$__9163b2f918a191611fed91609b916001600160a01b031690600401615903565b60e060405180830381865af415801561200a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202e919061598c565b959d949c50929a50909850965094509092509050565b606083336001600160a01b038216148015906120895750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156120a9573360405163087231bf60e31b8152600401610e129190614272565b6097546040516370a0823160e01b81526000916001600160a01b0316906370a08231906120da903090600401614272565b602060405180830381865afa1580156120f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211b9190614eab565b6097546040516321437a5360e01b815291925073__$0d78a42341742155da77b97d7f993534c7$__916321437a539161218a917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b03909116908c903090600401615a00565b602060405180830381865af41580156121a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121cb9190614eab565b506097546040516370a0823160e01b815260009183916001600160a01b03909116906370a0823190612201903090600401614272565b602060405180830381865afa15801561221e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122429190614eab565b61224c9190614dee565b90508060000361226f57604051630f6fa54560e41b815260040160405180910390fd5b61228b8782600060405180602001604052806000815250612c6b565b50939695505050505050565b600080516020615d578339815191526122af81612356565b815161013a8190556020808401805161013b556040808601805161013c5581519485529151928401929092525182820152517f220b9fb6f33ff05be83cf4d215109467b91026cf1f239e2acb4b7095cf09d5c59181900360600190a15050565b60606110038686600b0b8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c6b92505050565b6111518133613361565b600080516020615d9e83398151915282036123d9576101435460405163329b55b760e21b81526001600160a01b039091169063ca6d56dc906123a6908490600401614272565b600060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050505b61108882826133ba565b604051635b69006f60e11b8152600080516020615cd783398151915260048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6d200de90602401602060405180830381865afa158015612458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247c91906158e6565b6001600160a01b0316826001600160a01b0316149050919050565b600080516020615d9e8339815191528203612510576101435460405163058e524d60e11b81526001600160a01b0390911690630b1ca49a906124dd908490600401614272565b600060405180830381600087803b1580156124f757600080fd5b505af115801561250b573d6000803e3d6000fd5b505050505b6110888282613440565b600080516020615d37833981519152546001600160a01b031690565b600061108881612356565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561257457610f46836134a7565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156125ce575060408051601f3d908101601f191682019092526125cb91810190614eab565b60015b6126315760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610e12565b600080516020615d3783398151915281146126a05760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610e12565b50610f46838383613541565b6001600160a01b03163b151590565b6110888282612360565b6001600160a01b0381166126ec5760405163538ba4f960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383811691909117909155604051631e51d6a760e11b81527f000000000000000000000000000000000000000000000000000000000000000090911690633ca3ad4e90612752903090600401614272565b602060405180830381865afa15801561276f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127939190615a41565b1515600003612811576040516315a722b960e31b8152600160048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ad3915c890602401600060405180830381600087803b1580156127fe57600080fd5b505af192505050801561280f575060015b505b6040805180820182527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168082529151635b69006f60e11b8152600080516020615cd783398151915260048201529091602083019163b6d200de90602401602060405180830381865afa158015612894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b891906158e6565b6001600160a01b039081169091528151609980546001600160a01b0319908116928416929092179055602090920151609a8054909316911617905550565b606061293d8786600b0b8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c6b92505050565b98975050505050505050565b600080600080600061295a8861356c565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e8889061298e908b908b908b90600401615a5e565b608060405180830381865afa1580156129ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129cf9190615a81565b929b919a509850909650945050505050565b60006129fb600080516020615d9e833981519152846119d8565b15612a0857506001610c27565b610138546001600160a01b031615612aa957610138546040516316874da360e11b81526000916001600160a01b031690632d0e9b4690612a4c908790600401614272565b602060405180830381865afa158015612a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8d91906158e6565b90506001600160a01b038116612aa7576000915050610c27565b505b610137546001600160a01b031615612b4457610137546040516356a42afd60e11b81526001600160a01b039091169063ad4855fa90612af2903090339088908890600401615abf565b602060405180830381865afa158015612b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b339190615a41565b1515600003612b4457506000610c27565b612b5c600080516020615d9e83398151915284612360565b50600192915050565b600080856001600160a01b03166323b872dd60e01b868686604051602401612b8f93929190614fb8565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612bcd9190615afd565b6000604051808303816000865af19150503d8060008114612c0a576040519150601f19603f3d011682016040523d82523d6000602084013e612c0f565b606091505b5091509150818015612c39575080511580612c39575080806020019051810190612c399190615a41565b61146d5760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b6044820152606401610e12565b805181901515600080612c7c610ce8565b609754919350915073__$0d78a42341742155da77b97d7f993534c7$__9063934e2cce90609b906001600160a01b0316612cb4611727565b8588612cc0578c612cc3565b60005b6040516001600160e01b031960e088901b16815260048101959095526001600160a01b03938416602486015292909116604484015263ffffffff166064830152608482015260a40160006040518083038186803b158015612d2357600080fd5b505af4158015612d37573d6000803e3d6000fd5b505060975460009250612d5591506001600160a01b03168a306136db565b6001600160a01b038a16600090815260986020526040902054909150841561314a57600082600b0b138015612d9257506459df649400600b83900b125b15612db557604051624963df60e91b8152600b83900b6004820152602401610e12565b6001600160a01b038a16600090815260986020526040902060010180546001600160e01b031916600160601b426001600160801b038116919091026001600160601b031916919091176001600160601b03851617909155612e17908990614dee565b612e21908a614e01565b6001600160a01b038b1660009081526098602052604081208054909190612e49908490614e18565b9091555060009050612e59611727565b6001600160a01b03161461301c57612e6f611727565b6001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa158015612eac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed091906158e6565b9350612eda611727565b6001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f3b9190615b19565b925073__$0d78a42341742155da77b97d7f993534c7$__634d167a906099609760009054906101000a90046001600160a01b0316609b60030160009054906101000a90046001600160a01b031688888f89612f969190615b36565b8d6040518863ffffffff1660e01b8152600401612fb99796959493929190615b63565b600060405180830381865af4158015612fd6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ffe9190810190615bb3565b609e80546001600160a01b0319166001600160a01b03871617905595505b613024610ce8565b809450819550505073__$0d78a42341742155da77b97d7f993534c7$__634d167a906099609760009054906101000a90046001600160a01b0316609b60040160009054906101000a90046001600160a01b031688888f896130859190615b36565b8d6040518863ffffffff1660e01b81526004016130a89796959493929190615b63565b600060405180830381865af41580156130c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130ed9190810190615bb3565b609f80546001600160a01b0319166001600160a01b038781169190911790915560975491975061311e911630613769565b609e80546001600160601b0392909216600160a01b026001600160a01b03909216919091179055613289565b6000613154611727565b6001600160a01b0316146132435761316a611727565b6001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cb91906158e6565b93506131d5611727565b6001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa158015613212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132369190615b19565b925061324384848b6137f0565b61324b610ce8565b909450925061325b84848b6137f0565b6001600160a01b038a16600090815260986020526040812080548b9290613283908490614e18565b90915550505b6001600160a01b038a166000818152609860205260409020547f6342e11b65ccb38a3bb259be9cda846c74ad52b36b62a2ee4799dc3db63a04a3908390886132d25760006132d4565b8c5b604080519384526020840192909252600b90810b8383015286900b60608301528815156080830152519081900360a00190a25050505050949350505050565b60606133588460008086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c6b92505050565b95945050505050565b61336b82826119d8565b611088576133788161383c565b61338383602061384e565b604051602001613394929190615bfb565b60408051601f198184030181529082905262461bcd60e51b8252610e1291600401614195565b6133c482826119d8565b6110885760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556133fc3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61344a82826119d8565b156110885760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6134b0816126ac565b6135125760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610e12565b600080516020615d3783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61354a836139e9565b6000825111806135575750805b15610f46576135668383613a29565b50505050565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fb969d79d88acd02d04ed7ee7d43b949e7daf093d363abcfbbc43dfdfd1ce969a546001600160a01b0381166136aa576001600160a01b03821661363157826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561360a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061362e91906158e6565b91505b604051635b69006f60e11b8152600080516020615cd783398151915260048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015613683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a791906158e6565b90505b6001600160a01b0382166136c0576136c0615c6a565b6001600160a01b0381166136d6576136d6615c6a565b915091565b6000806136e78561356c565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e8889061371b90889088908890600401615a5e565b608060405180830381865afa158015613738573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061375c9190615a81565b5090979650505050505050565b6000806137758461356c565b60405163e8e7e2d160e01b81529092506001600160a01b038316915063e8e7e2d1906137a79087908790600401614ab2565b602060405180830381865afa1580156137c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137e89190615c80565b949350505050565b6001600160a01b03831661380357505050565b600061271061381863ffffffff851684614e01565b6138229190615c9d565b609754909150613566906001600160a01b03168583613b12565b6060610c276001600160a01b03831660145b6060600061385d836002614e01565b613868906002614e18565b6001600160401b0381111561387f5761387f613f06565b6040519080825280601f01601f1916602001820160405280156138a9576020820181803683370190505b509050600360fc1b816000815181106138c4576138c4615292565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106138f3576138f3615292565b60200101906001600160f81b031916908160001a9053506000613917846002614e01565b613922906001614e18565b90505b600181111561399a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061395657613956615292565b1a60f81b82828151811061396c5761396c615292565b60200101906001600160f81b031916908160001a90535060049490941c9361399381615cbf565b9050613925565b508315610da65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610e12565b6139f2816134a7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613a34836126ac565b613a8f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610e12565b600080846001600160a01b031684604051613aaa9190615afd565b600060405180830381855af49150503d8060008114613ae5576040519150601f19603f3d011682016040523d82523d6000602084013e613aea565b606091505b50915091506133588282604051806060016040528060278152602001615d7760279139613c0b565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691613b6e9190615afd565b6000604051808303816000865af19150503d8060008114613bab576040519150601f19603f3d011682016040523d82523d6000602084013e613bb0565b606091505b5091509150818015613bda575080511580613bda575080806020019051810190613bda9190615a41565b6118d45760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610e12565b60608315613c1a575081610da6565b610da68383815115613c2f5781518083602001fd5b8060405162461bcd60e51b8152600401610e129190614195565b82805482825590600052602060002090600f01601090048101928215613ce25791602002820160005b83821115613cb257835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302613c72565b8015613ce05782816101000a81549061ffff0219169055600201602081600101049283019260010302613cb2565b505b50613cee929150613d98565b5090565b82805482825590600052602060002090600101600290048101928215613ce25791602002820160005b83821115613d6557835183826101000a8154816001600160801b0302191690836001600160801b031602179055509260200192601001602081600f01049283019260010302613d1b565b8015613ce05782816101000a8154906001600160801b030219169055601001602081600f01049283019260010302613d65565b5b80821115613cee5760008155600101613d99565b600060208284031215613dbf57600080fd5b5035919050565b600060208284031215613dd857600080fd5b81356001600160e01b031981168114610da657600080fd5b6001600160a01b038116811461115157600080fd5b8035613e1081613df0565b919050565b60008083601f840112613e2757600080fd5b5081356001600160401b03811115613e3e57600080fd5b602083019150836020828501011115613e5657600080fd5b9250929050565b600080600080600060808688031215613e7557600080fd5b8535613e8081613df0565b94506020860135613e9081613df0565b93506040860135925060608601356001600160401b03811115613eb257600080fd5b613ebe88828901613e15565b969995985093965092949392505050565b6001600160a01b03169052565b600060208284031215613eee57600080fd5b8135610da681613df0565b6001600160801b03169052565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715613f3f57613f3f613f06565b60405290565b604051608081016001600160401b0381118282101715613f3f57613f3f613f06565b60405160c081016001600160401b0381118282101715613f3f57613f3f613f06565b604051601f8201601f191681016001600160401b0381118282101715613fb157613fb1613f06565b604052919050565b60006001600160401b03821115613fd257613fd2613f06565b50601f01601f191660200190565b600082601f830112613ff157600080fd5b8135614004613fff82613fb9565b613f89565b81815284602083860101111561401957600080fd5b816020850160208301376000918101602001919091529392505050565b600060a0828403121561404857600080fd5b60405160a081016001600160401b03808211838310171561406b5761406b613f06565b816040528293508435915061407f82613df0565b81835260208501356020840152604085013560408401526060850135606084015260808501359150808211156140b457600080fd5b506140c185828601613fe0565b6080830152505092915050565b6000806000606084860312156140e357600080fd5b83356001600160401b03808211156140fa57600080fd5b61410687838801614036565b94506020860135915061411882613df0565b9092506040850135908082111561412e57600080fd5b5061413b86828701613fe0565b9150509250925092565b60005b83811015614160578181015183820152602001614148565b50506000910152565b60008151808452614181816020860160208601614145565b601f01601f19169290920160200192915050565b602081526000610da66020830184614169565b600080600080600080600080600060c08a8c0312156141c657600080fd5b89356141d181613df0565b985060208a01356141e181613df0565b975060408a0135965060608a01356001600160401b038082111561420457600080fd5b6142108d838e01613e15565b909850965060808c013591508082111561422957600080fd5b6142358d838e01613e15565b909650945060a08c013591508082111561424e57600080fd5b5061425b8c828d01613e15565b915080935050809150509295985092959850929598565b6001600160a01b0391909116815260200190565b6000806040838503121561429957600080fd5b8235915060208301356142ab81613df0565b809150509250929050565b600080600080600080600060a0888a0312156142d157600080fd5b87356142dc81613df0565b965060208801356142ec81613df0565b95506040880135945060608801356001600160401b038082111561430f57600080fd5b61431b8b838c01613e15565b909650945060808a013591508082111561433457600080fd5b506143418a828b01613e15565b989b979a50959850939692959293505050565b63ffffffff8116811461115157600080fd5b8035613e1081614354565b60006001600160401b0382111561438a5761438a613f06565b5060051b60200190565b61ffff8116811461115157600080fd5b8035613e1081614394565b600082601f8301126143c057600080fd5b813560206143d0613fff83614371565b82815260059290921b840181019181810190868411156143ef57600080fd5b8286015b8481101561441357803561440681614394565b83529183019183016143f3565b509695505050505050565b6001600160801b038116811461115157600080fd5b8035613e108161441e565b600082601f83011261444f57600080fd5b8135602061445f613fff83614371565b82815260059290921b8401810191818101908684111561447e57600080fd5b8286015b848110156144135780356144958161441e565b8352918301918301614482565b801515811461115157600080fd5b8035613e10816144a2565b600061010082840312156144ce57600080fd5b6144d6613f1c565b90506144e182614366565b815260208201356001600160401b03808211156144fd57600080fd5b614509858386016143af565b6020840152604084013591508082111561452257600080fd5b5061452f8482850161443e565b60408301525061454160608301613e05565b606082015261455260808301613e05565b608082015261456360a08301613e05565b60a082015261457460c08301613e05565b60c082015261458560e083016144b0565b60e082015292915050565b6000606082840312156145a257600080fd5b604051606081016001600160401b03811182821017156145c4576145c4613f06565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600080600060e0868803121561460357600080fd5b853561460e81613df0565b945060208601356001600160401b0381111561462957600080fd5b614635888289016144bb565b9450506146458760408801614590565b925060a086013561465581614354565b915060c086013561466581613df0565b809150509295509295909350565b6000806040838503121561468657600080fd5b823561469181613df0565b915060208301356001600160401b038111156146ac57600080fd5b6146b885828601613fe0565b9150509250929050565b600080604083850312156146d557600080fd5b82356146e081613df0565b946020939093013593505050565b600082601f8301126146ff57600080fd5b8135602061470f613fff83614371565b82815260059290921b8401810191818101908684111561472e57600080fd5b8286015b8481101561441357803561474581613df0565b8352918301918301614732565b60006080828403121561476457600080fd5b61476c613f45565b9050813561477981614354565b815260208281013561478a81614394565b8282015260408301356001600160401b03808211156147a857600080fd5b6147b486838701613fe0565b604085015260608501359150808211156147cd57600080fd5b818501915085601f8301126147e157600080fd5b81356147ef613fff82614371565b81815260059190911b8301840190848101908883111561480e57600080fd5b8585015b838110156148de5780358581111561482a5760008081fd5b860160c0818c03601f19018113156148425760008081fd5b61484a613f67565b6148558a84016143a4565b815261486360408401614366565b8a820152606083013560408201526080830135888111156148845760008081fd5b6148928e8c83870101613fe0565b60608301525060a080840135898111156148ac5760008081fd5b6148ba8f8d838801016146ee565b6080840152506148cb838501614433565b9082015285525050918601918601614812565b50606087015250939695505050505050565b60008060006060848603121561490557600080fd5b833561491081613df0565b925060208401356001600160401b0381111561492b57600080fd5b61493786828701614752565b9250506040840135614948816144a2565b809150509250925092565b6000806040838503121561496657600080fd5b82356001600160401b0381111561497c57600080fd5b614988858286016144bb565b92505060208301356142ab81614354565b600080604083850312156149ac57600080fd5b8235915060208301356001600160401b038111156149c957600080fd5b6146b885828601614752565b6000806000606084860312156149ea57600080fd5b83356149f581613df0565b92506020840135915060408401356001600160401b03811115614a1757600080fd5b61413b86828701613fe0565b60008060008060608587031215614a3957600080fd5b8435614a4481613df0565b93506020850135925060408501356001600160401b03811115614a6657600080fd5b614a7287828801613e15565b95989497509550505050565b600060208284031215614a9057600080fd5b81356001600160401b03811115614aa657600080fd5b6137e884828501613fe0565b6001600160a01b0392831681529116602082015260400190565b600080600060608486031215614ae157600080fd5b8335614aec81613df0565b925060208401356001600160401b0380821115614b0857600080fd5b614b1487838801614036565b9350604086013591508082111561412e57600080fd5b600060608284031215614b3c57600080fd5b610da68383614590565b8051613e1081614354565b8051613e1081614394565b6000614b6a613fff84613fb9565b9050828152838383011115614b7e57600080fd5b610da6836020830184614145565b600082601f830112614b9d57600080fd5b610da683835160208501614b5c565b600082601f830112614bbd57600080fd5b81516020614bcd613fff83614371565b82815260059290921b84018101918181019086841115614bec57600080fd5b8286015b84811015614413578051614c0381613df0565b8352918301918301614bf0565b8051613e108161441e565b60006020808385031215614c2e57600080fd5b82516001600160401b0380821115614c4557600080fd5b9084019060808287031215614c5957600080fd5b614c61613f45565b8251614c6c81614354565b815282840151614c7b81614394565b81850152604083015182811115614c9157600080fd5b614c9d88828601614b8c565b604083015250606083015182811115614cb557600080fd5b80840193505086601f840112614cca57600080fd5b8251614cd8613fff82614371565b81815260059190911b84018501908581019089831115614cf757600080fd5b8686015b83811015614dc557805186811115614d1257600080fd5b870160c0818d03601f19011215614d295760008081fd5b614d31613f67565b614d3c8a8301614b51565b8152614d4a60408301614b46565b8a82015260608201516040820152608082015188811115614d6b5760008081fd5b614d798e8c83860101614b8c565b60608301525060a08083015189811115614d935760008081fd5b614da18f8d83870101614bac565b608084015250614db360c08401614c10565b90820152845250918701918701614cfb565b5060608401525090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610c2757610c27614dd8565b8082028115828204841417610c2757610c27614dd8565b80820180821115610c2757610c27614dd8565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526000608082015160a060808501526137e860a0850182614169565b600060018060a01b03808716835260806020840152614e926080840187614e2b565b9481166040840152929092166060909101525092915050565b600060208284031215614ebd57600080fd5b5051919050565b60008060408385031215614ed757600080fd5b8235614ee281613df0565b915060208301356142ab81613df0565b80600b0b811461115157600080fd5b60008060408385031215614f1457600080fd5b82356146e081614ef2565b6020808252602c90820152600080516020615d1783398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020615d1783398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60008060408385031215614fa657600080fd5b8235915060208301356142ab81614ef2565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000608063ffffffff80845116855260208085015161ffff80821683890152604091508187015185838a0152615014868a0182614169565b90506060808901518a8303828c01528281518085528785019150878160051b860101888401935060005b828110156150fb57601f19878303018452845160c08982511684528c8c830151168c8501528a8201518b85015287820151818986015261508082860182614169565b9150508d8201518482038f8601528181518084528e840191508e83019350600092505b808310156150cc5783516001600160a01b03168252928e019260019290920191908e01906150a3565b5060a0938401519392506150e286840185613ef9565b978d0197968d019694505050600191909101905061503e565b509d9c50505050505050505050505050565b6001600160a01b038416815260806020820181905260009061513190830185614fdc565b9215156040830152508082036060909101526000815260200192915050565b600081518084526020808501945080840160005b8381101561518457815161ffff1687529582019590820190600101615164565b509495945050505050565b600081518084526020808501945080840160005b838110156151845781516001600160801b0316875295820195908201906001016151a3565b6020815263ffffffff8251166020820152600060208301516101008060408501526151f7610120850183615150565b91506040850151601f19858403016060860152615214838261518f565b92505060608501516152296080860182613ecf565b50608085015161523c60a0860182613ecf565b5060a085015161524f60c0860182613ecf565b5060c085015161526260e0860182613ecf565b5060e0850151801515858301525090949350505050565b8281526040602082015260006137e86040830184614fdc565b634e487b7160e01b600052603260045260246000fd5b6000600182016152ba576152ba614dd8565b5060010190565b805480835260008281526020808220940193909190825b82600f8201101561542957815461ffff80821688526020615303818a01838560101c1661ffff169052565b6040615318818b018486851c1661ffff169052565b60609150615330828b01848660301c1661ffff169052565b6080615345818c018587851c1661ffff169052565b60a0915061535d828c01858760501c1661ffff169052565b60c0615372818d018688871c1661ffff169052565b60e0935061538a848d01868860701c1661ffff169052565b61ffff86831c8616166101008d01526153af6101208d01868860901c1661ffff169052565b61ffff86841c8616166101408d01526153d46101608d01868860b01c1661ffff169052565b61ffff86821c8616166101808d01525050506153fc6101a08a01838560d01c1661ffff169052565b82901c1661ffff166101c088015260f01c6101e087015261020090950194600191909101906010016152d8565b905490828110156154455761ffff821686526020909501946001015b828110156154625761ffff601083901c1686526020909501946001015b8281101561548057602082901c61ffff168652602095909501946001015b8281101561549d5761ffff603083901c1686526020909501946001015b828110156154ba5761ffff604083901c1686526020909501946001015b828110156154d75761ffff605083901c1686526020909501946001015b828110156154f45761ffff606083901c1686526020909501946001015b828110156155115761ffff607083901c1686526020909501946001015b8281101561552e5761ffff608083901c1686526020909501946001015b8281101561554b5761ffff609083901c1686526020909501946001015b828110156155685761ffff60a083901c1686526020909501946001015b828110156155855761ffff60b083901c1686526020909501946001015b828110156155a25761ffff60c083901c1686526020909501946001015b828110156155bf5761ffff60d083901c1686526020909501946001015b828110156155dc5761ffff60e083901c1686526020909501946001015b828110156155f35760f082901c86525b6020860195505b5093949350505050565b805480835260008281526020808220940193909190825b60018381830110615625575061565f565b825461563a886001600160801b038316613ef9565b61564a602089018260801c613ef9565b50604096909601959190910190600201615614565b905490828110156156885761567d866001600160801b038416613ef9565b602095909501946001015b828110156155f3576155ec868360801c613ef9565b6001600160a01b031690565b6000608063ffffffff80845116855260208085015161ffff80821683890152604091508187015185838a01526156e1868a0182614169565b90506060808901518a8303828c01528281518085528785019150878160051b860101888401935060005b828110156150fb57601f19878303018452845160c08982511684528c8c830151168c8501528a8201518b85015287820151818986015261574d82860182614169565b9150508d8201518482038f8601528181518084528e840191508e83019350600092505b808310156157995783516001600160a01b03168252928e019260019290920191908e0190615770565b5060a0938401519392506157af86840185613ef9565b978d0197968d019694505050600191909101905061570b565b60006101008883528754602084015260018801546040840152600288015460608401528660808401528060a084015261581581840161580b885463ffffffff1690565b63ffffffff169052565b61012083015261582c6102008301600187016152c1565b82810360ff190161014084015261584681600288016155fd565b9050615855600387015461569d565b615863610160850182613ecf565b50615871600487015461569d565b61587f610180850182613ecf565b5061588d600587015461569d565b61589b6101a0850182613ecf565b5060068601546158b86101c085016001600160a01b038316613ecf565b6158cd6101e0850160ff8360a01c1615159052565b508460c084015282810360e0840152610f0881856156a9565b6000602082840312156158f857600080fd5b8151610da681613df0565b825481526001830154602082015260028301546040820152600383015461012082019061593c606084016001600160a01b038316613ecf565b61594e608084018260a01d600b0b9052565b5061595c600485015461569d565b61596960a0840182613ecf565b50600584015460c0830152600684015460e0830152610da6610100830184613ecf565b600080600080600080600060e0888a0312156159a757600080fd5b8751965060208801519550604088015194506060880151935060808801516159ce81614ef2565b60a08901519093506159df81614ef2565b60c08901519092506159f081614ef2565b8091505092959891949750929550565b600060018060a01b03808816835260a06020840152615a2260a0840188614e2b565b9581166040840152938416606083015250911660809091015292915050565b600060208284031215615a5357600080fd5b8151610da6816144a2565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60008060008060808587031215615a9757600080fd5b845193506020850151615aa981614ef2565b6040860151606090960151949790965092505050565b6001600160a01b038581168252848116602083015283166040820152608060608201819052600090615af390830184614169565b9695505050505050565b60008251615b0f818460208701614145565b9190910192915050565b600060208284031215615b2b57600080fd5b8151610da681614354565b600b82810b9082900b0360016001605f1b0319811260016001605f1b0382131715610c2757610c27614dd8565b8781526001600160a01b03878116602083015286811660408301528516606082015263ffffffff84166080820152600b83900b60a082015260e060c08201819052600090610f0890830184614169565b600060208284031215615bc557600080fd5b81516001600160401b03811115615bdb57600080fd5b8201601f81018413615bec57600080fd5b6137e884825160208401614b5c565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351615c2d816017850160208801614145565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615c5e816028840160208801614145565b01602801949350505050565b634e487b7160e01b600052600160045260246000fd5b600060208284031215615c9257600080fd5b8151610da681614ef2565b600082615cba57634e487b7160e01b600052601260045260246000fd5b500490565b600081615cce57615cce614dd8565b50600019019056fea9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3f0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc946756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564829b824e2329e205435d941c9f13baf578548505283d29261236d8e6596d4636a26469706673582212203b7e1805c3bc029d486f883c92b5b83ae4745c1a5269e79112d4d37889299f1b64736f6c63430008130033";
|
|
2022
2111
|
|
|
2023
2112
|
type DirectPaymentsPoolConstructorParams =
|
|
2024
2113
|
| [linkLibraryAddresses: DirectPaymentsPoolLibraryAddresses, signer?: Signer]
|
|
@@ -2060,6 +2149,15 @@ export class DirectPaymentsPool__factory extends ContractFactory {
|
|
|
2060
2149
|
.toLowerCase()
|
|
2061
2150
|
);
|
|
2062
2151
|
|
|
2152
|
+
linkedBytecode = linkedBytecode.replace(
|
|
2153
|
+
new RegExp("__\\$b588313394510b77eaf869f89af95096f1\\$__", "g"),
|
|
2154
|
+
linkLibraryAddresses[
|
|
2155
|
+
"contracts/DirectPayments/DirectPaymentsLibrary.sol:DirectPaymentsLibrary"
|
|
2156
|
+
]
|
|
2157
|
+
.replace(/^0x/, "")
|
|
2158
|
+
.toLowerCase()
|
|
2159
|
+
);
|
|
2160
|
+
|
|
2063
2161
|
return linkedBytecode;
|
|
2064
2162
|
}
|
|
2065
2163
|
|
|
@@ -2103,4 +2201,5 @@ export class DirectPaymentsPool__factory extends ContractFactory {
|
|
|
2103
2201
|
|
|
2104
2202
|
export interface DirectPaymentsPoolLibraryAddresses {
|
|
2105
2203
|
["contracts/utils/HelperLibrary.sol:HelperLibrary"]: string;
|
|
2204
|
+
["contracts/DirectPayments/DirectPaymentsLibrary.sol:DirectPaymentsLibrary"]: string;
|
|
2106
2205
|
}
|
|
@@ -3,4 +3,5 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
export * as directPaymentsPoolSol from "./DirectPaymentsPool.sol";
|
|
5
5
|
export { DirectPaymentsFactory__factory } from "./DirectPaymentsFactory__factory";
|
|
6
|
+
export { DirectPaymentsLibrary__factory } from "./DirectPaymentsLibrary__factory";
|
|
6
7
|
export { ProvableNFT__factory } from "./ProvableNFT__factory";
|