UNPKG

@sablier/airdrops

Version:

EVM smart contracts of the Sablier Airdrops protocol

551 lines 215 kB
{ "abi": [ { "type": "constructor", "inputs": [ { "name": "campaignParams", "type": "tuple", "internalType": "struct MerkleVCA.ConstructorParams", "components": [ { "name": "aggregateAmount", "type": "uint128", "internalType": "uint128" }, { "name": "campaignName", "type": "string", "internalType": "string" }, { "name": "campaignStartTime", "type": "uint40", "internalType": "uint40" }, { "name": "claimType", "type": "uint8", "internalType": "enum ClaimType" }, { "name": "enableRedistribution", "type": "bool", "internalType": "bool" }, { "name": "expiration", "type": "uint40", "internalType": "uint40" }, { "name": "initialAdmin", "type": "address", "internalType": "address" }, { "name": "ipfsCID", "type": "string", "internalType": "string" }, { "name": "merkleRoot", "type": "bytes32", "internalType": "bytes32" }, { "name": "token", "type": "address", "internalType": "contract IERC20" }, { "name": "unlockPercentage", "type": "uint256", "internalType": "UD60x18" }, { "name": "vestingEndTime", "type": "uint40", "internalType": "uint40" }, { "name": "vestingStartTime", "type": "uint40", "internalType": "uint40" } ] }, { "name": "campaignCreator", "type": "address", "internalType": "address" }, { "name": "comptroller", "type": "address", "internalType": "address" } ], "stateMutability": "nonpayable" }, { "type": "function", "name": "AGGREGATE_AMOUNT", "inputs": [], "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }], "stateMutability": "view" }, { "type": "function", "name": "CAMPAIGN_START_TIME", "inputs": [], "outputs": [{ "name": "", "type": "uint40", "internalType": "uint40" }], "stateMutability": "view" }, { "type": "function", "name": "CLAIM_TYPE", "inputs": [], "outputs": [{ "name": "", "type": "uint8", "internalType": "enum ClaimType" }], "stateMutability": "view" }, { "type": "function", "name": "COMPTROLLER", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "EXPIRATION", "inputs": [], "outputs": [{ "name": "", "type": "uint40", "internalType": "uint40" }], "stateMutability": "view" }, { "type": "function", "name": "IS_SABLIER_MERKLE", "inputs": [], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "MERKLE_ROOT", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "TOKEN", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract IERC20" }], "stateMutability": "view" }, { "type": "function", "name": "UNLOCK_PERCENTAGE", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "UD60x18" }], "stateMutability": "view" }, { "type": "function", "name": "VESTING_END_TIME", "inputs": [], "outputs": [{ "name": "", "type": "uint40", "internalType": "uint40" }], "stateMutability": "view" }, { "type": "function", "name": "VESTING_START_TIME", "inputs": [], "outputs": [{ "name": "", "type": "uint40", "internalType": "uint40" }], "stateMutability": "view" }, { "type": "function", "name": "admin", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "attestor", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "calculateClaimAmount", "inputs": [ { "name": "fullAmount", "type": "uint128", "internalType": "uint128" }, { "name": "claimTime", "type": "uint40", "internalType": "uint40" } ], "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }], "stateMutability": "view" }, { "type": "function", "name": "calculateForgoneAmount", "inputs": [ { "name": "fullAmount", "type": "uint128", "internalType": "uint128" }, { "name": "claimTime", "type": "uint40", "internalType": "uint40" } ], "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }], "stateMutability": "view" }, { "type": "function", "name": "calculateMinFeeWei", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "calculateRedistributionRewards", "inputs": [{ "name": "fullAmount", "type": "uint128", "internalType": "uint128" }], "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }], "stateMutability": "view" }, { "type": "function", "name": "campaignName", "inputs": [], "outputs": [{ "name": "", "type": "string", "internalType": "string" }], "stateMutability": "view" }, { "type": "function", "name": "claimTo", "inputs": [ { "name": "index", "type": "uint256", "internalType": "uint256" }, { "name": "to", "type": "address", "internalType": "address" }, { "name": "fullAmount", "type": "uint128", "internalType": "uint128" }, { "name": "merkleProof", "type": "bytes32[]", "internalType": "bytes32[]" } ], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "claimViaAttestation", "inputs": [ { "name": "index", "type": "uint256", "internalType": "uint256" }, { "name": "to", "type": "address", "internalType": "address" }, { "name": "fullAmount", "type": "uint128", "internalType": "uint128" }, { "name": "expireAt", "type": "uint40", "internalType": "uint40" }, { "name": "merkleProof", "type": "bytes32[]", "internalType": "bytes32[]" }, { "name": "attestation", "type": "bytes", "internalType": "bytes" } ], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "claimViaSig", "inputs": [ { "name": "index", "type": "uint256", "internalType": "uint256" }, { "name": "recipient", "type": "address", "internalType": "address" }, { "name": "to", "type": "address", "internalType": "address" }, { "name": "fullAmount", "type": "uint128", "internalType": "uint128" }, { "name": "validFrom", "type": "uint40", "internalType": "uint40" }, { "name": "merkleProof", "type": "bytes32[]", "internalType": "bytes32[]" }, { "name": "signature", "type": "bytes", "internalType": "bytes" } ], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "clawback", "inputs": [ { "name": "to", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint128", "internalType": "uint128" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "domainSeparator", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "enableRedistribution", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "firstClaimTime", "inputs": [], "outputs": [{ "name": "", "type": "uint40", "internalType": "uint40" }], "stateMutability": "view" }, { "type": "function", "name": "hasClaimed", "inputs": [{ "name": "index", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "hasExpired", "inputs": [], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "ipfsCID", "inputs": [], "outputs": [{ "name": "", "type": "string", "internalType": "string" }], "stateMutability": "view" }, { "type": "function", "name": "isRedistributionEnabled", "inputs": [], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "lowerMinFeeUSD", "inputs": [{ "name": "newMinFeeUSD", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "minFeeUSD", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "setAttestor", "inputs": [{ "name": "newAttestor", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "sponsor", "inputs": [ { "name": "token", "type": "address", "internalType": "contract IERC20" }, { "name": "amount", "type": "uint128", "internalType": "uint128" }, { "name": "biller", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "totalForgoneAmount", "inputs": [], "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }], "stateMutability": "view" }, { "type": "function", "name": "totalRedistributionAmountPaid", "inputs": [], "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }], "stateMutability": "view" }, { "type": "function", "name": "transferAdmin", "inputs": [{ "name": "newAdmin", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "ClaimVCA", "inputs": [ { "name": "index", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "recipient", "type": "address", "indexed": true, "internalType": "address" }, { "name": "claimAmount", "type": "uint128", "indexed": false, "internalType": "uint128" }, { "name": "forgoneAmount", "type": "uint128", "indexed": false, "internalType": "uint128" }, { "name": "to", "type": "address", "indexed": false, "internalType": "address" }, { "name": "viaSig", "type": "bool", "indexed": false, "internalType": "bool" } ], "anonymous": false }, { "type": "event", "name": "Clawback", "inputs": [ { "name": "admin", "type": "address", "indexed": true, "internalType": "address" }, { "name": "to", "type": "address", "indexed": true, "internalType": "address" }, { "name": "amount", "type": "uint128", "indexed": false, "internalType": "uint128" } ], "anonymous": false }, { "type": "event", "name": "EnableRedistribution", "inputs": [], "anonymous": false }, { "type": "event", "name": "LowerMinFeeUSD", "inputs": [ { "name": "comptroller", "type": "address", "indexed": true, "internalType": "address" }, { "name": "newMinFeeUSD", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "previousMinFeeUSD", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "RedistributeReward", "inputs": [ { "name": "index", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "recipient", "type": "address", "indexed": true, "internalType": "address" }, { "name": "amount", "type": "uint128", "indexed": false, "internalType": "uint128" }, { "name": "to", "type": "address", "indexed": false, "internalType": "address" } ], "anonymous": false }, { "type": "event", "name": "SetAttestor", "inputs": [ { "name": "caller", "type": "address", "indexed": true, "internalType": "address" }, { "name": "previousAttestor", "type": "address", "indexed": true, "internalType": "address" }, { "name": "newAttestor", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "event", "name": "Sponsor", "inputs": [ { "name": "caller", "type": "address", "indexed": true, "internalType": "address" }, { "name": "token", "type": "address", "indexed": true, "internalType": "contract IERC20" }, { "name": "amount", "type": "uint128", "indexed": false, "internalType": "uint128" }, { "name": "biller", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "event", "name": "TransferAdmin", "inputs": [ { "name": "oldAdmin", "type": "address", "indexed": true, "internalType": "address" }, { "name": "newAdmin", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "error", "name": "CallerNotAdmin", "inputs": [ { "name": "admin", "type": "address", "internalType": "address" }, { "name": "caller", "type": "address", "internalType": "address" } ] }, { "type": "error", "name": "PRBMath_MulDiv18_Overflow", "inputs": [ { "name": "x", "type": "uint256", "internalType": "uint256" }, { "name": "y", "type": "uint256", "internalType": "uint256" } ] }, { "type": "error", "name": "PRBMath_UD60x18_IntoUint128_Overflow", "inputs": [{ "name": "x", "type": "uint256", "internalType": "UD60x18" }] }, { "type": "error", "name": "SablierMerkleBase_CallerNotComptroller", "inputs": [ { "name": "comptroller", "type": "address", "internalType": "address" }, { "name": "caller", "type": "address", "internalType": "address" } ] }, { "type": "error", "name": "SablierMerkleBase_CampaignExpired", "inputs": [ { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" }, { "name": "expiration", "type": "uint40", "internalType": "uint40" } ] }, { "type": "error", "name": "SablierMerkleBase_CampaignNotStarted", "inputs": [ { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" }, { "name": "campaignStartTime", "type": "uint40", "internalType": "uint40" } ] }, { "type": "error", "name": "SablierMerkleBase_ClawbackNotAllowed", "inputs": [ { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" }, { "name": "expiration", "type": "uint40", "internalType": "uint40" }, { "name": "firstClaimTime", "type": "uint40", "internalType": "uint40" } ] }, { "type": "error", "name": "SablierMerkleBase_FeeTransferFailed", "inputs": [ { "name": "feeRecipient", "type": "address", "internalType": "address" }, { "name": "feeAmount", "type": "uint256", "internalType": "uint256" } ] }, { "type": "error", "name": "SablierMerkleBase_IndexClaimed", "inputs": [{ "name": "index", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "SablierMerkleBase_InsufficientFeePayment", "inputs": [ { "name": "feePaid", "type": "uint256", "internalType": "uint256" }, { "name": "minFeeWei", "type": "uint256", "internalType": "uint256" } ] }, { "type": "error", "name": "SablierMerkleBase_InvalidProof", "inputs": [] }, { "type": "error", "name": "SablierMerkleBase_NewMinFeeUSDNotLower", "inputs": [ { "name": "currentMinFeeUSD", "type": "uint256", "internalType": "uint256" }, { "name": "newMinFeeUSD", "type": "uint256", "internalType": "uint256" } ] }, { "type": "error", "name": "SablierMerkleBase_SponsorAmountZero", "inputs": [] }, { "type": "error", "name": "SablierMerkleBase_ToZeroAddress", "inputs": [] }, { "type": "error", "name": "SablierMerkleBase_UnsupportedClaimType", "inputs": [ { "name": "claimTypeRequired", "type": "uint8", "internalType": "enum ClaimType" }, { "name": "claimTypeSupported", "type": "uint8", "internalType": "enum ClaimType" } ] }, { "type": "error", "name": "SablierMerkleSignature_AttestationExpired", "inputs": [ { "name": "expireAt", "type": "uint256", "internalType": "uint256" }, { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" } ] }, { "type": "error", "name": "SablierMerkleSignature_AttestorNotSet", "inputs": [] }, { "type": "error", "name": "SablierMerkleSignature_CallerNotAuthorized", "inputs": [ { "name": "caller", "type": "address", "internalType": "address" }, { "name": "campaignAdmin", "type": "address", "internalType": "address" }, { "name": "comptroller", "type": "address", "internalType": "address" } ] }, { "type": "error", "name": "SablierMerkleSignature_InvalidSignature", "inputs": [] }, { "type": "error", "name": "SablierMerkleSignature_SignatureNotYetValid", "inputs": [ { "name": "validFrom", "type": "uint40", "internalType": "uint40" }, { "name": "blockTimestamp", "type": "uint40", "internalType": "uint40" } ] }, { "type": "error", "name": "SablierMerkleVCA_ClaimAmountZero", "inputs": [{ "name": "recipient", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "SablierMerkleVCA_RedistributionAlreadyEnabled", "inputs": [] }, { "type": "error", "name": "SablierMerkleVCA_RedistributionNotEnabled", "inputs": [] }, { "type": "error", "name": "SablierMerkleVCA_VestingEndTimeNotInFuture", "inputs": [ { "name": "vestingEndTime", "type": "uint256", "internalType": "uint256" }, { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" } ] }, { "type": "error", "name": "SablierMerkleVCA_VestingNotStarted", "inputs": [ { "name": "claimTime", "type": "uint40", "internalType": "uint40" }, { "name": "vestingStartTime", "type": "uint40", "internalType": "uint40" } ] }, { "type": "error", "name": "SafeCastOverflowedUintDowncast", "inputs": [ { "name": "bits", "type": "uint8", "internalType": "uint8" }, { "name": "value", "type": "uint256", "internalType": "uint256" } ] }, { "type": "error", "name": "SafeERC20FailedOperation", "inputs": [{ "name": "token", "type": "address", "internalType": "address" }] } ], "bytecode": { "object": "0x610200806040523461060157613423803803809161001d828561081d565b83398101906060818303126106015780516001600160401b038111610601578101906101a08284031261060157604051916101a083016001600160401b0381118482101761070c5760405280516001600160801b038116810361060157835260208101516001600160401b038111610601578461009b918301610840565b90602084019182526100af604082016108ad565b916040850192835260608201519060038210156106015760608601918252608083015196871515880361060157608087019788526100ef60a085016108ad565b9460a0880195865261010360c086016108bf565b60c0890190815260e086015190926001600160401b0382116106015761012a918701610840565b9360e08901948552610100860151926101008a019384526101208701519060018060a01b0382168203610601578a986101208a0192835261018f6101806101408b01519a6101408d019b8c526101606101848183016108ad565b9d019c8d52016108ad565b9a6101808d019b8c5264ffffffffff6101b660406101af602085016108bf565b93016108bf565b9851965116945191600383101561080957519251985196519351604051996001600160a01b039182169664ffffffffff909516946101408c01939092909116908b84106001600160401b0385111761070c5760409384526001600160a01b039081168c5260208c01988952928b0191825260608b019384529890911660808a0190815260a08a0193845260c08a0189905260e08a019788526101008a019485526101208a019586525f80546001600160a01b0319168a178155909864ffffffffff92917fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf808180a35116608052519060038210156108095760a09190915285516001600160a01b0390811660c052905164ffffffffff1660e05290516101005290511661012052518051906001600160401b03821161070c5760015490600182811c921680156107ff575b60208310146106ee5781601f849311610791575b50602090601f831160011461072b575f92610720575b50508160011b915f199060031b1c1916176001555b518051906001600160401b03821161070c57600354600181811c91168015610702575b60208210146106ee57601f811161068b575b50602090601f83116001146106235760209392915f9183610618575b50508160011b915f199060031b1c1916176003555b51915160405163111b863560e31b81525f60048201526001600160a01b0391821660248201529283916044918391165afa90811561060d575f916105cc575b509064ffffffffff94859392600455466101405260405160208101907f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86682527f13cd784591b49af6fc220be53013eaddf1dc15399ca43850d206ea319aca082160408201524660608201523060808201526080815261046460a08261081d565b51902061016052516001600160801b031661018052516101a05251166101c05251166101e052516006805460ff60a01b191691151560a01b60ff60a01b16919091179055604051612b4f90816108d48239608051818181610a100152611b9c015260a05181818161036b015281816104410152818161102a0152611630015260c0518181816102f101528181610331015281816108a101528181610b9101528181610df701528181611bd201526125f1015260e05181818161080f0152818161152201528181611a6e0152611f46015261010051818181610bcc0152611d7b0152610120518181816109cf015281816111fe0152818161148701526120ec0152610140518161267301526101605181612699015261018051818181610c3401526124bc01526101a0518181816107cf015261236c01526101c05181818161085001528181611765015261233001526101e05181818161067901528181610af201526122f80152f35b929190506020833d602011610605575b816105e96020938361081d565b8101031261060157915190919064ffffffffff6103e4565b5f80fd5b3d91506105dc565b6040513d5f823e3d90fd5b015190505f80610390565b90601f1983169160035f52815f20925f5b818110610673575091600193918560209796941061065b575b505050811b016003556103a5565b01515f1960f88460031b161c191690555f808061064d565b92936020600181928786015181550195019301610634565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c810191602085106106e4575b601f0160051c01905b8181106106d95750610374565b5f81556001016106cc565b90915081906106c3565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610362565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061032a565b60015f9081528281209350601f198516905b8181106107795750908460019594939210610761575b505050811b0160015561033f565b01515f1960f88460031b161c191690555f8080610753565b9293602060018192878601518155019501930161073d565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c810191602085106107f5575b90601f859493920160051c01905b8181106107e75750610314565b5f81558493506001016107da565b90915081906107cc565b91607f1691610300565b634e487b7160e01b5f52602160045260245ffd5b601f909101601f19168101906001600160401b0382119082101761070c57604052565b81601f82011215610601578051906001600160401b03821161070c5760405192610874601f8401601f19166020018561081d565b82845260208383010111610601575f5b82811061089857505060205f918301015290565b80602080928401015182828701015201610884565b519064ffffffffff8216820361060157565b51906001600160a01b03821682036106015756fe60806040526004361015610011575f80fd5b5f3560e01c8063051823a2146117455780630724fda91461168a5780630854a79c146115ec578063106a0fee146115aa5780631686c909146114265780632074358314610f925780632481a13a14610e6f5780633a12a5bc14610d9b57806349fc73dd14610c585780634b45ecd314610c0c5780634e0bb8cc14610bef57806351e75e8b14610bb55780635f82c67e14610b655780635faaa89a14610b3657806361a7dcd414610b165780636c0b1e8c14610ad55780637423649b14610aba57806375829def14610a345780637ca3944d146109f357806382bfefc8146109a357806382d72f7f1461097f5780638ec688691461088e57806390e64d1314610874578063ae1a43a514610833578063bb4b5734146107f2578063be2ccd2b146107b8578063c0993d211461074c578063cada25c214610714578063caece53814610642578063ce51650714610602578063db05a050146105dd578063e74f822d146103ca578063eb8cd77514610359578063f5770b1f146101fd578063f698da25146101db5763f851a440146101a5575f80fd5b346101d7575f6003193601126101d757602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b5f80fd5b346101d7575f6003193601126101d75760206101f5612670565b604051908152f35b346101d75760206003193601126101d757610216611942565b73ffffffffffffffffffffffffffffffffffffffff5f54168033141580610319575b6102b0575073ffffffffffffffffffffffffffffffffffffffff8061025b61258f565b921691827fffffffffffffffffffffffff0000000000000000000000000000000000000000600654161760065516337fe12891ebe30d5f5d47856103adbbd7804332e875271e2903e5dd759badf2f42d5f80a4005b7f153cfb83000000000000000000000000000000000000000000000000000000005f523360045260245273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660445260645ffd5b5073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016331415610238565b346101d7575f6003193601126101d7577f0000000000000000000000000000000000000000000000000000000000000000604051600382101561039d576020918152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60c06003193601126101d7576004356103e161191f565b6103e9611988565b906064359264ffffffffff84168094036101d75760843567ffffffffffffffff81116101d75761041d9036906004016119e5565b9060a43567ffffffffffffffff81116101d75761043e903690600401611a2a565b907f0000000000000000000000000000000000000000000000000000000000000000600381101561039d57600181036105a7575073ffffffffffffffffffffffffffffffffffffffff86161561057f5761049661258f565b73ffffffffffffffffffffffffffffffffffffffff8116156105575742891061052757916105169161051e9594936105259a60405160208101917f219f32e1e2ac61bb8bf48019aeabd1a04366f69f4d9a4e73b315e56deb50c043835233604083015260608201526060815261050d608082611854565b519020906127b4565b853385611b8f565b3390611fcf565b005b887f820dbdf9000000000000000000000000000000000000000000000000000000005f526004524260245260445ffd5b7f91cce831000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f036fcd52000000000000000000000000000000000000000000000000000000005f5260045ffd5b6105d8907fcb0b66a3000000000000000000000000000000000000000000000000000000005f526001600452611a58565b60445ffd5b346101d7575f6003193601126101d757602060ff60065460a01c166040519015158152f35b346101d75760206003193601126101d757602061063860043560ff6001918060081c5f526005602052161b60405f205416151590565b6040519015158152f35b346101d75760406003193601126101d75761065b6119a7565b610663611a16565b64ffffffffff811615610706575b64ffffffffff7f00000000000000000000000000000000000000000000000000000000000000001664ffffffffff82168181106106d85760206106be856106b886826122f5565b90611aa3565b6fffffffffffffffffffffffffffffffff60405191168152f35b7f44cbf014000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b5064ffffffffff4216610671565b346101d7575f6003193601126101d757602061072e61258f565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346101d75760206003193601126101d7576107656119a7565b60ff60065460a01c1615610790576106be6fffffffffffffffffffffffffffffffff6020921661249e565b7f0f41a41d000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101d7575f6003193601126101d75760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d7576020610638611a66565b346101d75760206003193601126101d7577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1660043533820361094f576004548082101561092157816040917fcafa56d109bc30839f1bad76f9d17abcbd6c936490d4ec0fbc6d331bf89f92af9360045582519182526020820152a2005b7f173c9c82000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b507fead08252000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b346101d7575f6003193601126101d757602064ffffffffff60025416604051908152f35b346101d7575f6003193601126101d757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d75760206003193601126101d75773ffffffffffffffffffffffffffffffffffffffff610a62611942565b610a6a611ad5565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000005f5416175f55337fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf805f80a3005b346101d7575f6003193601126101d757602060405160018152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d757602060075460801c604051908152f35b346101d7575f6003193601126101d75760206fffffffffffffffffffffffffffffffff60075416604051908152f35b346101d7575f6003193601126101d757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d75760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346101d7575f6003193601126101d7576020600454604051908152f35b346101d7575f6003193601126101d75760206040516fffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d7576040515f6003548060011c90600181168015610d91575b602083108114610d6457828552908115610d225750600114610cc4575b610cc083610cac81850382611854565b6040519182916020835260208301906118c2565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610d0857509091508101602001610cac610c9c565b919260018160209254838588010152019101909291610cf0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b84019091019150610cac9050610c9c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610c7f565b346101d7575f6003193601126101d757600454604051907fb0fa59e8000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa8015610e64575f90610e31575b602090604051908152f35b506020813d602011610e5c575b81610e4b60209383611854565b810103126101d75760209051610e26565b3d9150610e3e565b6040513d5f823e3d90fd5b346101d75760606003193601126101d75760043573ffffffffffffffffffffffffffffffffffffffff81168082036101d757610ea96119c6565b9173ffffffffffffffffffffffffffffffffffffffff610ec7611965565b1692831561057f576fffffffffffffffffffffffffffffffff16908115610f6a57610f3c90604051907f23b872dd00000000000000000000000000000000000000000000000000000000602083015233602483015285604483015283606483015260648252610f37608483611854565b61272d565b6040519081527f5c3fcf40f5e26ff8e74068a6d3b372d00de14949e859fa20fb3616b2c7128b9b60203392a4005b7f642ef277000000000000000000000000000000000000000000000000000000005f5260045ffd5b60e06003193601126101d757600435610fa961191f565b90610fb2611965565b6064356fffffffffffffffffffffffffffffffff81168082036101d7576084359264ffffffffff84168094036101d75760a43567ffffffffffffffff81116101d7576110029036906004016119e5565b60c49591953567ffffffffffffffff81116101d757611025903690600401611a2a565b9690987f0000000000000000000000000000000000000000000000000000000000000000600381101561039d57806113f6575073ffffffffffffffffffffffffffffffffffffffff851697881561057f576110f4906040519b8c8c604060208301927fb0f12a3a6931229a836eaab08aeb1ebe2ddebad3bfd83f30d39f6c4a3b0f4f818452015273ffffffffffffffffffffffffffffffffffffffff85169d8e60608201528c60808201528a60a08201528860c082015260c081526110eb60e082611854565b519020846127b4565b64ffffffffff4216938481116113c6575091611116918761111c95948b611b8f565b846122f5565b916fffffffffffffffffffffffffffffffff831692831561139a579081905f81861015611242575050926112226fffffffffffffffffffffffffffffffff938487948160a09a987f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa89c9a0316956007547fffffffffffffffffffffffffffffffff00000000000000000000000000000000846111ba8a828516611f9d565b169116176007557fffffffffffffffffffffffffffffffff00000000000000000000000000000000836111f260085493828516611f9d565b169116176008555b16907f000000000000000000000000000000000000000000000000000000000000000061243f565b6040519485526020850152166040830152606082015260016080820152a2005b929397955095939086820361136d577f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa8976fffffffffffffffffffffffffffffffff8095611222938c60a09b60ff6006548e1c166112a3575b5050506111fa565b6112ac9061249e565b600754928584169360801c936112c28582611aa3565b87811688851611611365575b5086831694856112e1575b50505061129b565b7f27cf8717d25c16847f0112ea2293c66dbc1375d054eb641914dcbe1b9d6e284f949596509183917fffffffffffffffffffffffffffffffff0000000000000000000000000000000061133960609661134696611f9d565b60801b1617600755611f9d565b93604051908d825260208201528b6040820152a28c8c818080806112d9565b92505f6112ce565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b877f94dee01d000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b84907f663ab84b000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b6105d8907fcb0b66a3000000000000000000000000000000000000000000000000000000005f525f600452611a58565b346101d75760406003193601126101d75761143f611942565b6114476119c6565b61144f611ad5565b64ffffffffff600254168015158061155c575b8061154d575b6114f357506fffffffffffffffffffffffffffffffff16906114ab82827f000000000000000000000000000000000000000000000000000000000000000061243f565b7f2e9d425ba8b27655048400b366d7b6a1f7180ebdb088e06bb7389704860ffe1f602073ffffffffffffffffffffffffffffffffffffffff805f5416936040519586521693a3005b7fe2e40a0c000000000000000000000000000000000000000000000000000000005f524260045264ffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660245260445260645ffd5b50611556611a66565b15611468565b5062093a80810164ffffffffff811161157d5764ffffffffff164211611462565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b346101d75760406003193601126101d75760206106be6115c86119a7565b6115d0611a16565b9064ffffffffff82166122f5574264ffffffffff1691506122f5565b60806003193601126101d75760043561160361191f565b61160b611988565b9060643567ffffffffffffffff81116101d75761162c9036906004016119e5565b93907f0000000000000000000000000000000000000000000000000000000000000000600381101561039d57806113f6575073ffffffffffffffffffffffffffffffffffffffff83161561057f576105259461051e91853385611b8f565b346101d7575f6003193601126101d7576040515f6001548060011c9060018116801561173b575b602083108114610d6457828552908115610d2257506001146116dd57610cc083610cac81850382611854565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b80821061172157509091508101602001610cac610c9c565b919260018160209254838588010152019101909291611709565b91607f16916116b1565b346101d7575f6003193601126101d75761175d611ad5565b64ffffffffff7f000000000000000000000000000000000000000000000000000000000000000016428111156118255760065460ff8160a01c166117fd577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000176006557fa15f058f55b8d4348445e90b3db3a63d6b7b40fc257661ba096f73e28c3c93e05f80a1005b7f44d8c07a000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fc30b5042000000000000000000000000000000000000000000000000000000005f526004524260245260445ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761189557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b91908251928382525f5b84811061190a5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6020809697860101520116010190565b806020809284010151828286010152016118cc565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101d757565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101d757565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036101d757565b604435906fffffffffffffffffffffffffffffffff821682036101d757565b600435906fffffffffffffffffffffffffffffffff821682036101d757565b602435906fffffffffffffffffffffffffffffffff821682036101d757565b9181601f840112156101d75782359167ffffffffffffffff83116101d7576020808501948460051b0101116101d757565b6024359064ffffffffff821682036101d757565b9181601f840112156101d75782359167ffffffffffffffff83116101d757602083818601950101116101d757565b600381101561039d57602452565b64ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015159081611a9b575090565b905042101590565b906fffffffffffffffffffffffffffffffff809116911603906fffffffffffffffffffffffffffffffff821161157d57565b73ffffffffffffffffffffffffffffffffffffffff5f5416338103611af75750565b7fc6cce6a4000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b67ffffffffffffffff811161189557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d15611b8a573d90611b7182611b26565b91611b7f6040519384611854565b82523d5f602084013e565b606090565b939491909264ffffffffff7f000000000000000000000000000000000000000000000000000000000000000016428111611f6e5750611bcc611a66565b611f17577f00000000000000000000000000000000000000000000000000000000000000009373ffffffffffffffffffffffffffffffffffffffff851692600454604051907fb0fa59e80000000000000000000000000000000000000000000000000000000082526004820152602081602481885afa908115610e64575f91611ee5575b50803410611eb65750611c7a8760ff6001918060081c5f526005602052161b60405f205416151590565b611e8a576fffffffffffffffffffffffffffffffff6040519173ffffffffffffffffffffffffffffffffffffffff60208401948a865216604084015216606082015260608152611ccb608082611854565b5190206040516020810191825260208152611ce7604082611854565b5190209067ffffffffffffffff8711611895578660051b60405197611d0f602083018a611854565b885260208801908201913683116101d757905b828210611e7a57505050925f935b8651851015611d725760208560051b88010151908181105f14611d61575f52602052600160405f205b940193611d30565b905f52602052600160405f20611d59565b919492955092507f000000000000000000000000000000000000000000000000000000000000000003611e525760025464ffffffffff811615611e1e575b508060081c5f526005602052600160ff60405f2092161b815417905534611dd5575050565b5f8080809334905af1611de6611b60565b5015611def5750565b7fe57d366c000000000000000000000000000000000000000000000000000000005f526004523460245260445ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000164264ffffffffff16176002555f611db0565b7fb4f06787000000000000000000000000000000000000000000000000000000005f5260045ffd5b8135815260209182019101611d22565b867f02bf1aba000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fa164c6b4000000000000000000000000000000000000000000000000000000005f523460045260245260445ffd5b90506020813d602011611f0f575b81611f0060209383611854565b810103126101d757515f611c50565b3d9150611ef3565b7fdf4bae05000000000000000000000000000000000000000000000000000000005f524260045264ffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660245260445ffd5b7f14659648000000000000000000000000000000000000000000000000000000005f524260045260245260445ffd5b906fffffffffffffffffffffffffffffffff809116911601906fffffffffffffffffffffffffffffffff821161157d57565b92919091611fe464ffffffffff4216826122f5565b6fffffffffffffffffffffffffffffffff811690811561226957805f6fffffffffffffffffffffffffffffffff851680851015612132575050936fffffffffffffffffffffffffffffffff847f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa897946121108373ffffffffffffffffffffffffffffffffffffffff98968160a09b8b990316946007547fffffffffffffffffffffffffffffffff00000000000000000000000000000000846120a889828516611f9d565b169116176007557fffffffffffffffffffffffffffffffff00000000000000000000000000000000836120e060085493828516611f9d565b169116176008555b16857f000000000000000000000000000000000000000000000000000000000000000061243f565b604051998a5260208a01521660408801521660608601525f60808601521692a2565b848194929895979396500361136d577f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa89660a0966121106fffffffffffffffffffffffffffffffff809473ffffffffffffffffffffffffffffffffffffffff998d8b9960ff6006548f1c166121aa575b5050506120e8565b6121b39061249e565b600754928584169360801c936121c98582611aa3565b87811688851611612261575b5086831694856121e8575b5050506121a2565b61221a94959650611339847fffffffffffffffffffffffffffffffff0000000000000000000000000000000092611f9d565b91604051918252602082015288881660408201527f27cf8717d25c16847f0112ea2293c66dbc1375d054eb641914dcbe1b9d6e284f60608a8c1692a25f8d818080806121e0565b92505f6121d5565b73ffffffffffffffffffffffffffffffffffffffff857f94dee01d000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b8181029291811591840414171561157d57565b81156122c8570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b907f000000000000000000000000000000000000000000000000000000000000000064ffffffffff82169164ffffffffff82168310612437577f00000000000000000000000000000000000000000000000000000000000000009264ffffffffff8416116123635750505090565b909193926123a37f00000000000000000000000000000000000000000000000000000000000000006fffffffffffffffffffffffffffffffff831661285f565b946fffffffffffffffffffffffffffffffff861161240b57916123fc612401926fffffffffffffffffffffffffffffffff6123f6819664ffffffffff8981856124089d9e169b8c94031697031693611aa3565b166122ab565b6122be565b1690611f9d565b90565b857f4916adce000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b505050505f90565b61249c9273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252610f37606483611854565b565b6fffffffffffffffffffffffffffffffff60075416908115612589577f0000000000000000000000000000000000000000000000000000000000000000916fffffffffffffffffffffffffffffffff6008541690816fffffffffffffffffffffffffffffffff85161115612437576fffffffffffffffffffffffffffffffff6123fc9261252d950316926122ab565b6fffffffffffffffffffffffffffffffff8111612559576fffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52608060045260245260445ffd5b50505f90565b73ffffffffffffffffffffffffffffffffffffffff600654168061240857506040517fcada25c200000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e64575f91612624575090565b90506020813d602011612668575b8161263f60209383611854565b810103126101d7575173ffffffffffffffffffffffffffffffffffffffff811681036101d75790565b3d9150612632565b467f0000000000000000000000000000000000000000000000000000000000000000036126bb577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86682527f13cd784591b49af6fc220be53013eaddf1dc15399ca43850d206ea319aca082160408201524660608201523060808201526080815261272760a082611854565b51902090565b905f602091828151910182855af115610e64575f513d6127ab575073ffffffffffffffffffffffffffffffffffffffff81163b155b6127695750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415612762565b906042909392936127c3612670565b90604051917f1901000000000000000000000000000000000000000000000000000000000000835260028301526022820152209061280083611b26565b9261280e6040519485611854565b80845236818601116101d7576020815f9261283097838801378501015261292c565b1561283757565b7f45aa7fec000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382098382029182808310920391808303921461291b57670de0b6b3a76400008210156128eb577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b84907f5173648d000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b5050670de0b6b3a764000090049150565b9190823b612974579061293e91612a50565b50600481101561039d5715918261295457505090565b73ffffffffffffffffffffffffffffffffffffffff919250811691161490565b915f926129c36129ef859460405192839160208301957f1626ba7e00000000000000000000000000000000000000000000000000000000875260248401526040604484015260648301906118c2565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611854565b51915afa6129fb611b60565b81612a42575b81612a0a575090565b90506020818051810103126101d757602001517f1626ba7e000000000000000000000000000000000000000000000000000000001490565b905060208151101590612a01565b8151919060418303612a8057612a799250602082015190606060408401519301515f1a90612a8a565b9192909190565b50505f9160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612b0e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610e64575f5173ffffffffffffffffffffffffffffffffffffffff811615612b0457905f905f90565b505f906001905f90565b5050505f916003919056fea2646970667358221220d0df9ba980e485625390520a79f038f8f0bb599887ed12ad5b9a75f5bc3c548964736f6c634300081d0033", "sourceMap": "2913:13713:110:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;4717:27;;2913:13713;;;;;;;;;;;;;;;5049:22;;2913:13713;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;4606:580;;2913:13713;;;4606:580;;;2913:13713;;;;4606:580;;2913:13713;;;;;;;;4606:580;;2913:13713;;;;4606:580;;2913:13713;;;;4606:580;;2913:13713;;;;4606:580;;2913:13713;;;;4606:580;;2913:13713;;;;4606:580;;2913:13713;;;-1:-1:-1;2913:13713:110;;-1:-1:-1;;;;;;2913:13713:110;;;;;4606:580;;2913:13713;;4606:580;2290:68:57;-1:-1:-1;;2290:68:57;2913:13713:110;;;3550:50:112;2913:13713:110;;;;;;;;;3610:33:112;;;;2913:13713:110;;-1:-1:-1;;;;;2913:13713:110;;;;3653:36:112;2913:13713:110;;;;;3699:34:112;2913:13713:110;;;3743:35:112;2913:13713:110;;;;3788:24:112;3838:23;917:38:130;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;3881:18:112;917:38:130;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3921:159:112;;-1:-1:-1;3921:159:112;;;2913:13713:110;-1:-1:-1;;;;;2913:13713:110;;;;;;917:38:130;2913:13713:110;;;3921:159:112;;2913:13713:110;;;3921:159:112;;;;;;;-1:-1:-1;3921:159:112;;;2913:13713:110;;;;;;;;3921:159:112;2913:13713:110;2065:13:114;2913:13713:110;2046:32:114;2913:13713:110;;;2253:100:114;;917:38:130;540:80;917:38;;;2913:13713:110;917:38:130;;;2065:13:114;2913:13713:110;917:38:130;;;2347:4:114;2913:13713:110;917:38:130;;;2913:13713:110;2253:100:114;;;2913:13713:110;2253:100:114;;:::i;:::-;917:38:130;2230:133:114;;2913:13713:110;2203:160:114;2913:13713:110;-1:-1:-1;;;;;2913:13713:110;;5250:49;2913:13713;;5309:51;2913:13713;;5370:48;;2913:13713;;5428:52;;2913:13713;5546:61;2913:13713;;-1:-1:-1;;;;2913:13713:110;;;;;;-1:-1:-1;;;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5370:48;2913:13713;;;;;;;;;;;;;;;5428:52;2913:13713;;;;;;;;;;;;;;;;3921:159:112;;;;;2913:13713:110;3921:159:112;;2913:13713:110;3921:159:112;;;;;;2913:13713:110;3921:159:112;;;:::i;:::-;;;2913:13713:110;;;;;;3921:159:112;;;2913:13713:110;3921:159:112;;2913:13713:110;-1:-1:-1;2913:13713:110;;3921:159:112;;;-1:-1:-1;3921:159:112;;;2913:13713:110;;;-1:-1:-1;2913:13713:110;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;-1:-1:-1;2913:13713:110;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;-1:-1:-1;2913:13713:110;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;