diff --git a/contracts/src/v0.8/automation/dev/v2_3/AutomationRegistry2_3.sol b/contracts/src/v0.8/automation/dev/v2_3/AutomationRegistry2_3.sol index d01e2592cde..55ffea0faec 100644 --- a/contracts/src/v0.8/automation/dev/v2_3/AutomationRegistry2_3.sol +++ b/contracts/src/v0.8/automation/dev/v2_3/AutomationRegistry2_3.sol @@ -378,16 +378,14 @@ contract AutomationRegistry2_3 is AutomationRegistryBase2_3, OCR2Abstract, Chain } // remove any old signer/transmitter addresses - address signerAddress; address transmitterAddress; PayoutMode mode = s_payoutMode; for (uint256 i = 0; i < s_transmittersList.length; i++) { - signerAddress = s_signersList[i]; transmitterAddress = s_transmittersList[i]; - delete s_signers[signerAddress]; + delete s_signers[s_signersList[i]]; // Do not delete the whole transmitter struct as it has balance information stored s_transmitters[transmitterAddress].active = false; - if (mode == PayoutMode.OFF_CHAIN) { + if (mode == PayoutMode.OFF_CHAIN && s_transmitters[transmitterAddress].balance > 0) { s_deactivatedTransmitters.add(transmitterAddress); } } diff --git a/core/gethwrappers/generated/automation_registry_wrapper_2_3/automation_registry_wrapper_2_3.go b/core/gethwrappers/generated/automation_registry_wrapper_2_3/automation_registry_wrapper_2_3.go index 06d85628800..ff92015428d 100644 --- a/core/gethwrappers/generated/automation_registry_wrapper_2_3/automation_registry_wrapper_2_3.go +++ b/core/gethwrappers/generated/automation_registry_wrapper_2_3/automation_registry_wrapper_2_3.go @@ -59,7 +59,7 @@ type AutomationRegistryBase23OnchainConfig struct { var AutomationRegistryMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"contractAutomationRegistryLogicA2_3\",\"name\":\"logicA\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ArrayHasNoEntries\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotCancel\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckDataExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateEntry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateSigners\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasLimitCanOnlyIncrease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasLimitOutsideRange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectNumberOfFaultyOracles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectNumberOfSigners\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IndexOutOfRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBillingToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFeed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPayee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReport\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTrigger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTriggerType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MigrationNotPermitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MustSettleOffchain\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MustSettleOnchain\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyActiveSigners\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyActiveTransmitters\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByAdmin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByLINKToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByOwnerOrAdmin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByOwnerOrRegistrar\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByPayee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByProposedAdmin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByProposedPayee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByUpkeepPrivilegeManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyFinanceAdmin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPausedUpkeep\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySimulatedBackend\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyUnpausedUpkeep\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ParameterLengthError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RegistryPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RepeatedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RepeatedTransmitter\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"TargetCheckReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyOracles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TranscoderNotSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpkeepAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpkeepCancelled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpkeepNotCanceled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpkeepNotNeeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValueNotChanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"privilegeConfig\",\"type\":\"bytes\"}],\"name\":\"AdminPrivilegeConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contractIERC20\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"gasFeePPB\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"flatFeeMilliCents\",\"type\":\"uint24\"},{\"internalType\":\"contractAggregatorV3Interface\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fallbackPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint96\",\"name\":\"minSpend\",\"type\":\"uint96\"}],\"indexed\":false,\"internalType\":\"structAutomationRegistryBase2_3.BillingConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"BillingConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"trigger\",\"type\":\"bytes\"}],\"name\":\"CancelledUpkeepReport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newModule\",\"type\":\"address\"}],\"name\":\"ChainSpecificModuleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"previousConfigBlockNumber\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"configCount\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"onchainConfig\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"dedupKey\",\"type\":\"bytes32\"}],\"name\":\"DedupKeyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assetAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FeesWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"}],\"name\":\"FundsAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"trigger\",\"type\":\"bytes\"}],\"name\":\"InsufficientFundsUpkeepReport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"payees\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payments\",\"type\":\"uint256[]\"}],\"name\":\"NOPsSettledOffchain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"payees\",\"type\":\"address[]\"}],\"name\":\"PayeesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"transmitter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"PayeeshipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"transmitter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"PayeeshipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"transmitter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"payee\",\"type\":\"address\"}],\"name\":\"PaymentWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"trigger\",\"type\":\"bytes\"}],\"name\":\"ReorgedUpkeepReport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"trigger\",\"type\":\"bytes\"}],\"name\":\"StaleUpkeepReport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"epoch\",\"type\":\"uint32\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"UpkeepAdminTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"UpkeepAdminTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"atBlockHeight\",\"type\":\"uint64\"}],\"name\":\"UpkeepCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"newCheckData\",\"type\":\"bytes\"}],\"name\":\"UpkeepCheckDataSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"gasLimit\",\"type\":\"uint96\"}],\"name\":\"UpkeepGasLimitSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remainingBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"UpkeepMigrated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"name\":\"UpkeepOffchainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"UpkeepPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"totalPayment\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasOverhead\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"trigger\",\"type\":\"bytes\"}],\"name\":\"UpkeepPerformed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"privilegeConfig\",\"type\":\"bytes\"}],\"name\":\"UpkeepPrivilegeConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startingBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"importedFrom\",\"type\":\"address\"}],\"name\":\"UpkeepReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"performGas\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"UpkeepRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"triggerConfig\",\"type\":\"bytes\"}],\"name\":\"UpkeepTriggerConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"UpkeepUnpaused\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fallbackTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfigDetails\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfigDigestAndEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"scanLogs\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"epoch\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onTokenTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"onchainConfigBytes\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"checkGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"stalenessSeconds\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"gasCeilingMultiplier\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"maxPerformGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxCheckDataSize\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPerformDataSize\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxRevertDataSize\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"fallbackGasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fallbackLinkPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fallbackNativePrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"transcoder\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"registrars\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"upkeepPrivilegeManager\",\"type\":\"address\"},{\"internalType\":\"contractIChainModule\",\"name\":\"chainModule\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"reorgProtectionEnabled\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"financeAdmin\",\"type\":\"address\"}],\"internalType\":\"structAutomationRegistryBase2_3.OnchainConfig\",\"name\":\"onchainConfig\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"},{\"internalType\":\"contractIERC20[]\",\"name\":\"billingTokens\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"gasFeePPB\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"flatFeeMilliCents\",\"type\":\"uint24\"},{\"internalType\":\"contractAggregatorV3Interface\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fallbackPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint96\",\"name\":\"minSpend\",\"type\":\"uint96\"}],\"internalType\":\"structAutomationRegistryBase2_3.BillingConfig[]\",\"name\":\"billingConfigs\",\"type\":\"tuple[]\"}],\"name\":\"setConfigTypeSafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"performData\",\"type\":\"bytes\"}],\"name\":\"simulatePerformUpkeep\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"rawReport\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"transmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101806040523480156200001257600080fd5b50604051620062023803806200620283398101604081905262000035916200062f565b80816001600160a01b031663ca30e6036040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009b91906200062f565b826001600160a01b031663226cf83c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200010091906200062f565b836001600160a01b031663614486af6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200013f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016591906200062f565b846001600160a01b0316636709d0e56040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ca91906200062f565b856001600160a01b0316635425d8ac6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f91906200062f565b866001600160a01b031663a08714c06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029491906200062f565b876001600160a01b031663c5b964e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f9919062000656565b886001600160a01b031663ac4dc59a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000338573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035e91906200062f565b3380600081620003b55760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620003e857620003e8816200056b565b5050506001600160a01b0380891660805287811660a05286811660c05285811660e052848116610100528316610120526024805483919060ff19166001838181111562000439576200043962000679565b0217905550806001600160a01b0316610140816001600160a01b03168152505060c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200049a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c091906200068f565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052a91906200068f565b60ff16146200054c576040516301f86e1760e41b815260040160405180910390fd5b5050506001600160a01b039095166101605250620006b4945050505050565b336001600160a01b03821603620005c55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401620003ac565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6001600160a01b03811681146200062c57600080fd5b50565b6000602082840312156200064257600080fd5b81516200064f8162000616565b9392505050565b6000602082840312156200066957600080fd5b8151600281106200064f57600080fd5b634e487b7160e01b600052602160045260246000fd5b600060208284031215620006a257600080fd5b815160ff811681146200064f57600080fd5b60805160a05160c05160e05161010051610120516101405161016051615ad2620007306000396000818160c9015261017c015260005050600061220e01526000505060005050600061397501526000505060008181610df301528181610f000152818161102b0152818161107501526117590152615ad26000f3fe6080604052600436106100c75760003560e01c8063a4c0ed3611610074578063b1dc65a41161004e578063b1dc65a414610338578063e3d0e71214610358578063f2fde38b14610378576100c7565b8063a4c0ed361461029b578063aed2e929146102bb578063afcb95d7146102f2576100c7565b806379ba5097116100a557806379ba5097146101e157806381ff7048146101f65780638da5cb5b14610270576100c7565b8063181f5a771461010e578063349e8cca1461016d57806350097389146101c1575b7f00000000000000000000000000000000000000000000000000000000000000003660008037600080366000845af43d6000803e808015610107573d6000f35b3d6000fd5b005b34801561011a57600080fd5b506101576040518060400160405280601881526020017f4175746f6d6174696f6e526567697374727920322e332e30000000000000000081525081565b60405161016491906144dc565b60405180910390f35b34801561017957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610164565b3480156101cd57600080fd5b5061010c6101dc366004614a51565b610398565b3480156101ed57600080fd5b5061010c610cd9565b34801561020257600080fd5b5061024d60175460135463ffffffff74010000000000000000000000000000000000000000830481169378010000000000000000000000000000000000000000000000009093041691565b6040805163ffffffff948516815293909216602084015290820152606001610164565b34801561027c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661019c565b3480156102a757600080fd5b5061010c6102b6366004614bb2565b610ddb565b3480156102c757600080fd5b506102db6102d6366004614c0e565b6110f6565b604080519215158352602083019190915201610164565b3480156102fe57600080fd5b50601354601454604080516000815260208101939093526c0100000000000000000000000090910463ffffffff1690820152606001610164565b34801561034457600080fd5b5061010c610353366004614c9f565b61128c565b34801561036457600080fd5b5061010c610373366004614d56565b61156d565b34801561038457600080fd5b5061010c610393366004614e23565b6115a7565b6103a06115bb565b601f885111156103dc576040517f25d0209c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560ff16600003610419576040517fe77dba5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b865188511415806104385750610430866003614e76565b60ff16885111155b1561046f576040517f1d2d1c5800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80518251146104aa576040517fcf54c06a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104b4828261163e565b6104be8888611aa6565b604051806101200160405280601460000160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff168152602001600063ffffffff168152602001866020015162ffffff168152602001866040015161ffff1681526020018760ff168152602001601460000160169054906101000a900460ff1615158152602001601460000160179054906101000a900460ff1615158152602001866101c0015115158152602001866101a0015173ffffffffffffffffffffffffffffffffffffffff16815250601460008201518160000160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550602082015181600001600c6101000a81548163ffffffff021916908363ffffffff16021790555060408201518160000160106101000a81548162ffffff021916908362ffffff16021790555060608201518160000160136101000a81548161ffff021916908361ffff16021790555060808201518160000160156101000a81548160ff021916908360ff16021790555060a08201518160000160166101000a81548160ff02191690831515021790555060c08201518160000160176101000a81548160ff02191690831515021790555060e08201518160000160186101000a81548160ff0219169083151502179055506101008201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505060405180610160016040528086610140015173ffffffffffffffffffffffffffffffffffffffff168152602001866000015163ffffffff168152602001866060015163ffffffff1681526020016016600001601c9054906101000a900463ffffffff1663ffffffff16815260200186610180015173ffffffffffffffffffffffffffffffffffffffff168152602001601660010160149054906101000a900463ffffffff1663ffffffff168152602001601660010160189054906101000a900463ffffffff1663ffffffff168152602001866080015163ffffffff168152602001866101e0015173ffffffffffffffffffffffffffffffffffffffff1681526020018660a0015163ffffffff1681526020018660c0015163ffffffff16815250601660008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548163ffffffff021916908363ffffffff16021790555060408201518160000160186101000a81548163ffffffff021916908363ffffffff160217905550606082015181600001601c6101000a81548163ffffffff021916908363ffffffff16021790555060808201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160010160146101000a81548163ffffffff021916908363ffffffff16021790555060c08201518160010160186101000a81548163ffffffff021916908363ffffffff16021790555060e082015181600101601c6101000a81548163ffffffff021916908363ffffffff1602179055506101008201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160020160146101000a81548163ffffffff021916908363ffffffff1602179055506101408201518160020160186101000a81548163ffffffff021916908363ffffffff1602179055509050508460e00151601981905550846101000151601a81905550846101200151601b819055506000601660010160189054906101000a900463ffffffff169050856101a0015173ffffffffffffffffffffffffffffffffffffffff166357e871e76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae89190614e92565b601780547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000063ffffffff9384160217808255600192601491610b5f91859174010000000000000000000000000000000000000000900416614eab565b92506101000a81548163ffffffff021916908363ffffffff160217905550600086604051602001610b909190614f19565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152919052601754909150610bf5904690309074010000000000000000000000000000000000000000900463ffffffff168d8d8d878d8d612121565b601355600960008181610c0882826143c3565b5050505060005b87610160015151811015610c6257610c4f8861016001518281518110610c3757610c376150a0565b602002602001015160096121cb90919063ffffffff16565b5080610c5a816150cf565b915050610c0f565b506013546017546040517f1591690b8638f5fb2dbec82ac741805ac5da8b45dc5263f4875b0496fdce4e0592610cc59286927401000000000000000000000000000000000000000090910463ffffffff16908f908f908f9089908f908f90615107565b60405180910390a150505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610d5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064015b60405180910390fd5b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610e4a576040517fc8bad78d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208114610e84576040517fdfe9309000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610e928284018461519d565b60008181526004602052604090205490915065010000000000900463ffffffff90811614610eec576040517f9c0083a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600460205260409020600201547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff908116911614610f70576040517f1183afea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260046020526040902060010154610faf90859070010000000000000000000000000000000090046bffffffffffffffffffffffff166151b6565b600082815260046020908152604080832060010180546bffffffffffffffffffffffff95909516700100000000000000000000000000000000027fffffffff000000000000000000000000ffffffffffffffffffffffffffffffff9095169490941790935573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168252601c9052205461105e9085906151db565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166000908152601c602090815260409182902093909355516bffffffffffffffffffffffff871681529087169183917fafd24114486da8ebfc32f3626dada8863652e187461aa74d4bfa734891506203910160405180910390a35050505050565b6000806111016121f6565b601454760100000000000000000000000000000000000000000000900460ff1615611158576040517f24522f3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008581526004602090815260409182902082516101008082018552825460ff81161515835263ffffffff918104821683860181905265010000000000820483168488015273ffffffffffffffffffffffffffffffffffffffff690100000000000000000090920482166060850181905260018601546fffffffffffffffffffffffffffffffff811660808701526bffffffffffffffffffffffff70010000000000000000000000000000000082041660a08701527c0100000000000000000000000000000000000000000000000000000000900490931660c08501526002909401541660e08301528451601f8901859004850281018501909552878552909361127f93919291899089908190840183828082843760009201919091525061226592505050565b9097909650945050505050565b60005a60408051610120810182526014546bffffffffffffffffffffffff8116825263ffffffff6c01000000000000000000000000820416602083015262ffffff7001000000000000000000000000000000008204169282019290925261ffff730100000000000000000000000000000000000000830416606082015260ff75010000000000000000000000000000000000000000008304811660808301527601000000000000000000000000000000000000000000008304811615801560a08401527701000000000000000000000000000000000000000000000084048216151560c0840152780100000000000000000000000000000000000000000000000090930416151560e082015260155473ffffffffffffffffffffffffffffffffffffffff166101008201529192506113f0576040517f24522f3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600b602052604090205460ff16611439576040517f1099ed7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6013548a3514611475576040517fdfdcf8e700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60808101516114859060016151ee565b60ff16861415806114965750858414155b156114cd576040517f0244f71a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114dd8a8a8a8a8a8a8a8a612480565b60006114e98a8a6126e9565b905060208b0135600881901c63ffffffff166115068484876127a2565b836020015163ffffffff168163ffffffff16111561155e57601480547fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff166c0100000000000000000000000063ffffffff8416021790555b50505050505050505050505050565b6000806000858060200190518101906115869190615361565b92509250925061159c8989898689898888610398565b505050505050505050565b6115af6115bb565b6115b8816131e0565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610d56565b565b60005b6023548110156116fc576022600060238381548110611662576116626150a0565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080547fffffffffff000000000000000000000000000000000000000000000000000000168155600181019190915560020180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169055806116f4816150cf565b915050611641565b50611709602360006143c3565b60245460ff1660005b8351811015611aa057600084828151811061172f5761172f6150a0565b60200260200101519050600084838151811061174d5761174d6150a0565b602002602001015190507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117c3575060018460018111156117c1576117c161550c565b145b156117fa576040517f1183afea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821615806118355750604081015173ffffffffffffffffffffffffffffffffffffffff16155b1561186c576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff828116600090815260226020526040902054670100000000000000900416156118d6576040517f357d0cc400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6023805460018082019092557fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f42300180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8581169182179092556000818152602260209081526040918290208651815488840180518a8701805163ffffffff9095167fffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000909416841764010000000062ffffff93841602177fffffffffff0000000000000000000000000000000000000000ffffffffffffff16670100000000000000958b16959095029490941785556060808c0180519b87019b909b556080808d018051600290980180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff998a1617905589519586529351909216968401969096529251909716948101949094529551918301919091529251909216928201929092527f720a5849025dc4fd0061aed1bb30efd713cde64ce7f8d807953ecca27c8f143c9060a00160405180910390a250508080611a98906150cf565b915050611712565b50505050565b60005b600e54811015611b1d57611b0a600e8281548110611ac957611ac96150a0565b600091825260209091200154601454600e5473ffffffffffffffffffffffffffffffffffffffff909216916bffffffffffffffffffffffff909116906132d5565b5080611b15816150cf565b915050611aa9565b50602454600090819060ff16815b600e54811015611c4757600d8181548110611b4857611b486150a0565b600091825260209091200154600e805473ffffffffffffffffffffffffffffffffffffffff90921695509082908110611b8357611b836150a0565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff8781168452600c8352604080852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690559116808452600b90925290912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905592506001826001811115611c2357611c2361550c565b03611c3557611c33600f846121cb565b505b80611c3f816150cf565b915050611b2b565b50611c54600d60006143c3565b611c60600e60006143c3565b6040805160808101825260008082526020820181905291810182905260608101829052905b86518110156120f057600c6000888381518110611ca457611ca46150a0565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040016000205460ff1615611d0f576040517f77cea0fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16878281518110611d3957611d396150a0565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603611d8e576040517f815e1d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180604001604052806001151581526020018260ff16815250600c6000898481518110611dbf57611dbf6150a0565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528181019290925260400160002082518154939092015160ff16610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff921515929092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092171790558551869082908110611e6757611e676150a0565b60200260200101519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ed7576040517f58a70a0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600b60209081526040918290208251608081018452905460ff80821615801584526101008304909116938301939093526bffffffffffffffffffffffff6201000082048116948301949094526e01000000000000000000000000000090049092166060830152909250611f92576040517f6a7281ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180835260ff80831660208086019182526014546bffffffffffffffffffffffff9081166060880190815273ffffffffffffffffffffffffffffffffffffffff8a166000908152600b909352604092839020885181549551948a0151925184166e010000000000000000000000000000027fffffffffffff000000000000000000000000ffffffffffffffffffffffffffff939094166201000002929092167fffffffffffff000000000000000000000000000000000000000000000000ffff94909616610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff921515929092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909516949094171791909116929092179190911790558360018111156120cc576120cc61550c565b036120de576120dc600f856134dd565b505b806120e8816150cf565b915050611c85565b50855161210490600d9060208901906143e1565b50845161211890600e9060208801906143e1565b50505050505050565b6000808a8a8a8a8a8a8a8a8a6040516020016121459998979695949392919061553b565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291905280516020909101207dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e01000000000000000000000000000000000000000000000000000000000000179b9a5050505050505050505050565b60006121ed8373ffffffffffffffffffffffffffffffffffffffff84166134ff565b90505b92915050565b3273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461163c576040517fb60ac5db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601454600090819077010000000000000000000000000000000000000000000000900460ff16156122c2576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601480547fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000001790556040517f4585e33b00000000000000000000000000000000000000000000000000000000906123379085906024016144dc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290517f79188d1600000000000000000000000000000000000000000000000000000000815290935073ffffffffffffffffffffffffffffffffffffffff8616906379188d169061240a90879087906004016155d0565b60408051808303816000875af1158015612428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244c91906155e9565b601480547fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff16905590969095509350505050565b60008787604051612492929190615617565b6040519081900381206124a9918b90602001615627565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383019092526000808452908301819052909250906000805b8881101561268057600185878360208110612515576125156150a0565b61252291901a601b6151ee565b8c8c85818110612534576125346150a0565b905060200201358b8b8681811061254d5761254d6150a0565b905060200201356040516000815260200160405260405161258a949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa1580156125ac573d6000803e3d6000fd5b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081015173ffffffffffffffffffffffffffffffffffffffff81166000908152600c602090815290849020838501909452925460ff808216151580855261010090920416938301939093529095509350905061265a576040517f0f4c073700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826020015160080260ff166001901b840193508080612678906150cf565b9150506124f8565b50827e010101010101010101010101010101010101010101010101010101010101018416146126db576040517fc103be2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050505050565b6127226040518060c001604052806000815260200160008152602001606081526020016060815260200160608152602001606081525090565b600061273083850185615718565b604081015151606082015151919250908114158061275357508082608001515114155b806127635750808260a001515114155b1561279a576040517fb55ac75400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b509392505050565b600082604001515167ffffffffffffffff8111156127c2576127c26144ef565b60405190808252806020026020018201604052801561288657816020015b604080516101e081018252600060e08201818152610100830182905261012083018290526101408301829052610160830182905261018083018290526101a083018290526101c0830182905282526020808301829052928201819052606082018190526080820181905260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816127e05790505b50905060006040518060800160405280600061ffff16815260200160006bffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff16815260200160008152509050600085610100015173ffffffffffffffffffffffffffffffffffffffff166357e871e76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612924573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129489190614e92565b9050600086610100015173ffffffffffffffffffffffffffffffffffffffff166318b8f6136040518163ffffffff1660e01b8152600401602060405180830381865afa15801561299c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c09190614e92565b905060005b866040015151811015612e375760046000886040015183815181106129ec576129ec6150a0565b602090810291909101810151825281810192909252604090810160002081516101008082018452825460ff81161515835263ffffffff91810482169583019590955265010000000000850481169382019390935273ffffffffffffffffffffffffffffffffffffffff69010000000000000000009094048416606082015260018201546fffffffffffffffffffffffffffffffff811660808301526bffffffffffffffffffffffff70010000000000000000000000000000000082041660a08301527c0100000000000000000000000000000000000000000000000000000000900490921660c08301526002015490911660e08201528551869083908110612af657612af66150a0565b602002602001015160000181905250612b2b87604001518281518110612b1e57612b1e6150a0565b602002602001015161354e565b858281518110612b3d57612b3d6150a0565b6020026020010151606001906001811115612b5a57612b5a61550c565b90816001811115612b6d57612b6d61550c565b81525050612bd187604001518281518110612b8a57612b8a6150a0565b60200260200101518489608001518481518110612ba957612ba96150a0565b6020026020010151888581518110612bc357612bc36150a0565b60200260200101518c6135f9565b868381518110612be357612be36150a0565b6020026020010151602001878481518110612c0057612c006150a0565b602002602001015160c0018281525082151515158152505050848181518110612c2b57612c2b6150a0565b60200260200101516020015115612c5b57600184600001818151612c4f9190615805565b61ffff16905250612c60565b612e25565b612cc6858281518110612c7557612c756150a0565b6020026020010151600001516060015188606001518381518110612c9b57612c9b6150a0565b60200260200101518960a001518481518110612cb957612cb96150a0565b6020026020010151612265565b868381518110612cd857612cd86150a0565b6020026020010151604001878481518110612cf557612cf56150a0565b6020026020010151608001828152508215151515815250505087608001516001612d1f91906151ee565b612d2d9060ff166040615820565b6103a48860a001518381518110612d4657612d466150a0565b602002602001015151612d5991906151db565b612d6391906151db565b858281518110612d7557612d756150a0565b602002602001015160a0018181525050848181518110612d9757612d976150a0565b602002602001015160a0015184606001818151612db491906151db565b9052508451859082908110612dcb57612dcb6150a0565b60200260200101516080015186612de29190615837565b9550612e2587604001518281518110612dfd57612dfd6150a0565b602002602001015184878481518110612e1857612e186150a0565b6020026020010151613718565b80612e2f816150cf565b9150506129c5565b50825161ffff16600003612e4e5750505050505050565b6155f0612e5c366010615820565b5a612e679088615837565b612e7191906151db565b612e7b91906151db565b8351909550611b5890612e929061ffff1687615879565b612e9c91906151db565b604080516060810182526000808252602082018190529181018290529196505b87604001515181101561310f57858181518110612edb57612edb6150a0565b602002602001015160200151156130fd57612f1789878381518110612f0257612f026150a0565b60200260200101516000015160e0015161381d565b91506000612fe18a6040518061010001604052808a8681518110612f3d57612f3d6150a0565b60200260200101516080015181526020018b815260200189606001518b8781518110612f6b57612f6b6150a0565b602002602001015160a0015189612f829190615820565b612f8c9190615879565b81526020018c6000015181526020018c602001518152602001612fae8e61396e565b81526020810187905260016040918201528c0151805186908110612fd457612fd46150a0565b6020026020010151613a5f565b9050806060015186604001818151612ff991906151b6565b6bffffffffffffffffffffffff1690525060408101516020870180516130209083906151b6565b6bffffffffffffffffffffffff169052508651879083908110613045576130456150a0565b602002602001015160400151151589604001518381518110613069576130696150a0565b60200260200101517fad8cc9579b21dfe2c2f6ea35ba15b656e46b4f5b0cb424f52739b8ce5cac9c5b836060015184604001516130a691906151b6565b8a86815181106130b8576130b86150a0565b6020026020010151608001518c8e6080015188815181106130db576130db6150a0565b60200260200101516040516130f3949392919061588d565b60405180910390a3505b80613107816150cf565b915050612ebc565b5050602083810151336000908152600b9092526040909120805460029061314b9084906201000090046bffffffffffffffffffffffff166151b6565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508260400151601460000160008282829054906101000a90046bffffffffffffffffffffffff166131a991906151b6565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff82160361325f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610d56565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600b602090815260408083208151608081018352905460ff80821615801584526101008304909116948301949094526bffffffffffffffffffffffff6201000082048116938301939093526e01000000000000000000000000000090049091166060820152906134d157600081606001518561336d91906158ca565b9050600061337b85836158ef565b9050808360400181815161338f91906151b6565b6bffffffffffffffffffffffff169052506133aa858261591a565b836060018181516133bb91906151b6565b6bffffffffffffffffffffffff90811690915273ffffffffffffffffffffffffffffffffffffffff89166000908152600b602090815260409182902087518154928901519389015160608a015186166e010000000000000000000000000000027fffffffffffff000000000000000000000000ffffffffffffffffffffffffffff919096166201000002167fffffffffffff000000000000000000000000000000000000000000000000ffff60ff95909516610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff921515929092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909416939093171792909216179190911790555050505b60400151949350505050565b60006121ed8373ffffffffffffffffffffffffffffffffffffffff8416613ccd565b6000818152600183016020526040812054613546575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556121f0565b5060006121f0565b6000818160045b600f8110156135db577fff000000000000000000000000000000000000000000000000000000000000008216838260208110613593576135936150a0565b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146135c957506000949350505050565b806135d3816150cf565b915050613555565b5081600f1a60018111156135f1576135f161550c565b949350505050565b6000808080856060015160018111156136145761361461550c565b0361363a576136268888888888613dc0565b6136355760009250905061370e565b6136b2565b6001856060015160018111156136525761365261550c565b0361368057600061366589898988613f4a565b925090508061367a575060009250905061370e565b506136b2565b6040517ff2b2d41200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84516040015163ffffffff16871061370757877fc3237c8807c467c1b39b8d0395eff077313e691bf0a7388106792564ebfd5636876040516136f491906144dc565b60405180910390a260009250905061370e565b6001925090505b9550959350505050565b6000816060015160018111156137305761373061550c565b0361379457600083815260046020526040902060010180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff851602179055505050565b6001816060015160018111156137ac576137ac61550c565b036138185760c08101805160009081526008602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055915191517fa4a4e334c0e330143f9437484fe516c13bc560b86b5b0daf58e7084aaac228f29190a25b505050565b604080516060810182526000808252602080830182815283850183905273ffffffffffffffffffffffffffffffffffffffff868116845260229092528483208054640100000000810462ffffff1690925263ffffffff8216855285517ffeaf968c00000000000000000000000000000000000000000000000000000000815295519495909484936701000000000000009093049092169163feaf968c9160048082019260a0929091908290030181865afa1580156138df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139039190615964565b5093505092505060008213158061391957508042105b8061394957506000866040015162ffffff16118015613949575061393d8142615837565b866040015162ffffff16105b1561395d5760018301546040850152613965565b604084018290525b50505092915050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156139de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a029190615964565b50935050925050600082131580613a1857508042105b80613a4857506000846040015162ffffff16118015613a485750613a3c8142615837565b846040015162ffffff16105b15613a58575050601b5492915050565b5092915050565b604080516080810182526000808252602082018190529181018290526060810182905290613a8d8585614157565b60008481526004602090815260408220600101549083015183519394507001000000000000000000000000000000009091046bffffffffffffffffffffffff1692613ad891906151b6565b905082600001516bffffffffffffffffffffffff16826bffffffffffffffffffffffff161015613b5d57819050613b3e86608001518760c0015160400151846bffffffffffffffffffffffff16613b2f9190615820565b613b399190615879565b614321565b6bffffffffffffffffffffffff16604084015260006060840152613be9565b806bffffffffffffffffffffffff16826bffffffffffffffffffffffff161015613be957819050613bd583604001516bffffffffffffffffffffffff1687608001518860c0015160400151856bffffffffffffffffffffffff16613bc19190615820565b613bcb9190615879565b613b399190615837565b6bffffffffffffffffffffffff1660608401525b60008581526004602052604090206001018054829190601090613c2f90849070010000000000000000000000000000000090046bffffffffffffffffffffffff166158ca565b82546101009290920a6bffffffffffffffffffffffff81810219909316918316021790915560008781526004602052604081206001018054928516935091613c8a9084906fffffffffffffffffffffffffffffffff166159b4565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508293505050509392505050565b60008181526001830160205260408120548015613db6576000613cf1600183615837565b8554909150600090613d0590600190615837565b9050818114613d6a576000866000018281548110613d2557613d256150a0565b9060005260206000200154905080876000018481548110613d4857613d486150a0565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613d7b57613d7b6159dd565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506121f0565b60009150506121f0565b60008084806020019051810190613dd79190615a0c565b845160c00151815191925063ffffffff90811691161015613e3457867f405288ea7be309e16cfdf481367f90a413e1d4634fcdaf8966546db9b93012e886604051613e2291906144dc565b60405180910390a26000915050613f41565b8260e001518015613ef45750602081015115801590613ef45750602081015161010084015182516040517f85df51fd00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015273ffffffffffffffffffffffffffffffffffffffff909116906385df51fd90602401602060405180830381865afa158015613ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ef19190614e92565b14155b80613f065750805163ffffffff168611155b15613f3b57867f6aa7f60c176da7af894b384daea2249497448137f5943c1237ada8bc92bdc30186604051613e2291906144dc565b60019150505b95945050505050565b600080600084806020019051810190613f639190615a64565b9050600087826000015183602001518460400151604051602001613fc594939291909384526020840192909252604083015260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016606082015260640190565b6040516020818303038152906040528051906020012090508460e0015180156140a057506080820151158015906140a05750608082015161010086015160608401516040517f85df51fd00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015273ffffffffffffffffffffffffffffffffffffffff909116906385df51fd90602401602060405180830381865afa158015614079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061409d9190614e92565b14155b806140b5575086826060015163ffffffff1610155b156140ff57877f6aa7f60c176da7af894b384daea2249497448137f5943c1237ada8bc92bdc301876040516140ea91906144dc565b60405180910390a260009350915061414e9050565b60008181526008602052604090205460ff161561414657877f405288ea7be309e16cfdf481367f90a413e1d4634fcdaf8966546db9b93012e8876040516140ea91906144dc565b600193509150505b94509492505050565b6040805160808101825260008082526020820181905291810182905260608101919091526000836060015161ffff1683606001516141959190615820565b90508260e0015180156141a75750803a105b156141af57503a5b60008360a001518460400151856020015186600001516141cf91906151db565b6141d99085615820565b6141e391906151db565b6141ed9190615820565b90506142068460c001516040015182613b399190615879565b6bffffffffffffffffffffffff168352608084015161422990613b399083615879565b6bffffffffffffffffffffffff16604084015260c0840151602001516000906142609062ffffff16683635c9adc5dea00000615820565b9050600081633b9aca008760a001518860c001516000015163ffffffff1689604001518a60000151896142939190615820565b61429d91906151db565b6142a79190615820565b6142b19190615820565b6142bb9190615879565b6142c591906151db565b90506142de8660c001516040015182613b399190615879565b6bffffffffffffffffffffffff166020860152608086015161430490613b399083615879565b6bffffffffffffffffffffffff1660608601525050505092915050565b60006bffffffffffffffffffffffff8211156143bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610d56565b5090565b50805460008255906000526020600020908101906115b89190614463565b82805482825590600052602060002090810192821561445b579160200282015b8281111561445b57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190614401565b506143bf9291505b5b808211156143bf5760008155600101614464565b6000815180845260005b8181101561449e57602081850181015186830182015201614482565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006121ed6020830184614478565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610200810167ffffffffffffffff81118282101715614542576145426144ef565b60405290565b60405160a0810167ffffffffffffffff81118282101715614542576145426144ef565b60405160c0810167ffffffffffffffff81118282101715614542576145426144ef565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156145d5576145d56144ef565b604052919050565b600067ffffffffffffffff8211156145f7576145f76144ef565b5060051b60200190565b73ffffffffffffffffffffffffffffffffffffffff811681146115b857600080fd5b803561462e81614601565b919050565b600082601f83011261464457600080fd5b81356020614659614654836145dd565b61458e565b82815260059290921b8401810191818101908684111561467857600080fd5b8286015b8481101561469c57803561468f81614601565b835291830191830161467c565b509695505050505050565b803560ff8116811461462e57600080fd5b63ffffffff811681146115b857600080fd5b803561462e816146b8565b62ffffff811681146115b857600080fd5b803561462e816146d5565b61ffff811681146115b857600080fd5b803561462e816146f1565b80151581146115b857600080fd5b803561462e8161470c565b6000610200828403121561473857600080fd5b61474061451e565b905061474b826146ca565b8152614759602083016146e6565b602082015261476a60408301614701565b604082015261477b606083016146ca565b606082015261478c608083016146ca565b608082015261479d60a083016146ca565b60a08201526147ae60c083016146ca565b60c082015260e08281013590820152610100808301359082015261012080830135908201526101406147e1818401614623565b908201526101608281013567ffffffffffffffff81111561480157600080fd5b61480d85828601614633565b828401525050610180614821818401614623565b908201526101a0614833838201614623565b908201526101c061484583820161471a565b908201526101e0614857838201614623565b9082015292915050565b803567ffffffffffffffff8116811461462e57600080fd5b600082601f83011261488a57600080fd5b813567ffffffffffffffff8111156148a4576148a46144ef565b6148d560207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161458e565b8181528460208386010111156148ea57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261491857600080fd5b81356020614928614654836145dd565b82815260059290921b8401810191818101908684111561494757600080fd5b8286015b8481101561469c57803561495e81614601565b835291830191830161494b565b6bffffffffffffffffffffffff811681146115b857600080fd5b600082601f83011261499657600080fd5b813560206149a6614654836145dd565b82815260a092830285018201928282019190878511156149c557600080fd5b8387015b85811015614a445781818a0312156149e15760008081fd5b6149e9614548565b81356149f4816146b8565b815281860135614a03816146d5565b81870152604082810135614a1681614601565b9082015260608281013590820152608080830135614a338161496b565b9082015284529284019281016149c9565b5090979650505050505050565b600080600080600080600080610100898b031215614a6e57600080fd5b883567ffffffffffffffff80821115614a8657600080fd5b614a928c838d01614633565b995060208b0135915080821115614aa857600080fd5b614ab48c838d01614633565b9850614ac260408c016146a7565b975060608b0135915080821115614ad857600080fd5b614ae48c838d01614725565b9650614af260808c01614861565b955060a08b0135915080821115614b0857600080fd5b614b148c838d01614879565b945060c08b0135915080821115614b2a57600080fd5b614b368c838d01614907565b935060e08b0135915080821115614b4c57600080fd5b50614b598b828c01614985565b9150509295985092959890939650565b60008083601f840112614b7b57600080fd5b50813567ffffffffffffffff811115614b9357600080fd5b602083019150836020828501011115614bab57600080fd5b9250929050565b60008060008060608587031215614bc857600080fd5b8435614bd381614601565b935060208501359250604085013567ffffffffffffffff811115614bf657600080fd5b614c0287828801614b69565b95989497509550505050565b600080600060408486031215614c2357600080fd5b83359250602084013567ffffffffffffffff811115614c4157600080fd5b614c4d86828701614b69565b9497909650939450505050565b60008083601f840112614c6c57600080fd5b50813567ffffffffffffffff811115614c8457600080fd5b6020830191508360208260051b8501011115614bab57600080fd5b60008060008060008060008060e0898b031215614cbb57600080fd5b606089018a811115614ccc57600080fd5b8998503567ffffffffffffffff80821115614ce657600080fd5b614cf28c838d01614b69565b909950975060808b0135915080821115614d0b57600080fd5b614d178c838d01614c5a565b909750955060a08b0135915080821115614d3057600080fd5b50614d3d8b828c01614c5a565b999c989b50969995989497949560c00135949350505050565b60008060008060008060c08789031215614d6f57600080fd5b863567ffffffffffffffff80821115614d8757600080fd5b614d938a838b01614633565b97506020890135915080821115614da957600080fd5b614db58a838b01614633565b9650614dc360408a016146a7565b95506060890135915080821115614dd957600080fd5b614de58a838b01614879565b9450614df360808a01614861565b935060a0890135915080821115614e0957600080fd5b50614e1689828a01614879565b9150509295509295509295565b600060208284031215614e3557600080fd5b8135614e4081614601565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff8181168382160290811690818114613a5857613a58614e47565b600060208284031215614ea457600080fd5b5051919050565b63ffffffff818116838216019080821115613a5857613a58614e47565b600081518084526020808501945080840160005b83811015614f0e57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614edc565b509495945050505050565b60208152614f3060208201835163ffffffff169052565b60006020830151614f48604084018262ffffff169052565b50604083015161ffff8116606084015250606083015163ffffffff8116608084015250608083015163ffffffff811660a08401525060a083015163ffffffff811660c08401525060c083015163ffffffff811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610160614ff18185018373ffffffffffffffffffffffffffffffffffffffff169052565b808501519150506102006101808181860152615011610220860184614ec8565b908601519092506101a061503c8682018373ffffffffffffffffffffffffffffffffffffffff169052565b86015190506101c06150658682018373ffffffffffffffffffffffffffffffffffffffff169052565b86015190506101e061507a8682018315159052565b9095015173ffffffffffffffffffffffffffffffffffffffff1693019290925250919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361510057615100614e47565b5060010190565b600061012063ffffffff808d1684528b6020850152808b166040850152508060608401526151378184018a614ec8565b9050828103608084015261514b8189614ec8565b905060ff871660a084015282810360c08401526151688187614478565b905067ffffffffffffffff851660e084015282810361010084015261518d8185614478565b9c9b505050505050505050505050565b6000602082840312156151af57600080fd5b5035919050565b6bffffffffffffffffffffffff818116838216019080821115613a5857613a58614e47565b808201808211156121f0576121f0614e47565b60ff81811683821601908111156121f0576121f0614e47565b805161462e816146b8565b805161462e816146d5565b805161462e816146f1565b805161462e81614601565b600082601f83011261524457600080fd5b81516020615254614654836145dd565b82815260059290921b8401810191818101908684111561527357600080fd5b8286015b8481101561469c57805161528a81614601565b8352918301918301615277565b805161462e8161470c565b600082601f8301126152b357600080fd5b815160206152c3614654836145dd565b82815260a092830285018201928282019190878511156152e257600080fd5b8387015b85811015614a445781818a0312156152fe5760008081fd5b615306614548565b8151615311816146b8565b815281860151615320816146d5565b8187015260408281015161533381614601565b90820152606082810151908201526080808301516153508161496b565b9082015284529284019281016152e6565b60008060006060848603121561537657600080fd5b835167ffffffffffffffff8082111561538e57600080fd5b9085019061020082880312156153a357600080fd5b6153ab61451e565b6153b483615207565b81526153c260208401615212565b60208201526153d36040840161521d565b60408201526153e460608401615207565b60608201526153f560808401615207565b608082015261540660a08401615207565b60a082015261541760c08401615207565b60c082015260e083810151908201526101008084015190820152610120808401519082015261014061544a818501615228565b90820152610160838101518381111561546257600080fd5b61546e8a828701615233565b828401525050610180615482818501615228565b908201526101a0615494848201615228565b908201526101c06154a6848201615297565b908201526101e06154b8848201615228565b9082015260208701519095509150808211156154d357600080fd5b6154df87838801615233565b935060408601519150808211156154f557600080fd5b50615502868287016152a2565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006101208b835273ffffffffffffffffffffffffffffffffffffffff8b16602084015267ffffffffffffffff808b1660408501528160608501526155828285018b614ec8565b91508382036080850152615596828a614ec8565b915060ff881660a085015283820360c08501526155b38288614478565b90861660e0850152838103610100850152905061518d8185614478565b8281526040602082015260006135f16040830184614478565b600080604083850312156155fc57600080fd5b82516156078161470c565b6020939093015192949293505050565b8183823760009101908152919050565b8281526080810160608360208401379392505050565b600082601f83011261564e57600080fd5b8135602061565e614654836145dd565b82815260059290921b8401810191818101908684111561567d57600080fd5b8286015b8481101561469c5780358352918301918301615681565b600082601f8301126156a957600080fd5b813560206156b9614654836145dd565b82815260059290921b840181019181810190868411156156d857600080fd5b8286015b8481101561469c57803567ffffffffffffffff8111156156fc5760008081fd5b61570a8986838b0101614879565b8452509183019183016156dc565b60006020828403121561572a57600080fd5b813567ffffffffffffffff8082111561574257600080fd5b9083019060c0828603121561575657600080fd5b61575e61456b565b823581526020830135602082015260408301358281111561577e57600080fd5b61578a8782860161563d565b6040830152506060830135828111156157a257600080fd5b6157ae8782860161563d565b6060830152506080830135828111156157c657600080fd5b6157d287828601615698565b60808301525060a0830135828111156157ea57600080fd5b6157f687828601615698565b60a08301525095945050505050565b61ffff818116838216019080821115613a5857613a58614e47565b80820281158282048414176121f0576121f0614e47565b818103818111156121f0576121f0614e47565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826158885761588861584a565b500490565b6bffffffffffffffffffffffff851681528360208201528260408201526080606082015260006158c06080830184614478565b9695505050505050565b6bffffffffffffffffffffffff828116828216039080821115613a5857613a58614e47565b60006bffffffffffffffffffffffff8084168061590e5761590e61584a565b92169190910492915050565b6bffffffffffffffffffffffff81811683821602808216919082811461594257615942614e47565b505092915050565b805169ffffffffffffffffffff8116811461462e57600080fd5b600080600080600060a0868803121561597c57600080fd5b6159858661594a565b94506020860151935060408601519250606086015191506159a86080870161594a565b90509295509295909350565b6fffffffffffffffffffffffffffffffff818116838216019080821115613a5857613a58614e47565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600060408284031215615a1e57600080fd5b6040516040810181811067ffffffffffffffff82111715615a4157615a416144ef565b6040528251615a4f816146b8565b81526020928301519281019290925250919050565b600060a08284031215615a7657600080fd5b615a7e614548565b82518152602083015160208201526040830151615a9a816146b8565b60408201526060830151615aad816146b8565b6060820152608092830151928101929092525091905056fea164736f6c6343000813000a", + Bin: "0x6101806040523480156200001257600080fd5b50604051620062483803806200624883398101604081905262000035916200062f565b80816001600160a01b031663ca30e6036040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009b91906200062f565b826001600160a01b031663226cf83c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200010091906200062f565b836001600160a01b031663614486af6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200013f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016591906200062f565b846001600160a01b0316636709d0e56040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ca91906200062f565b856001600160a01b0316635425d8ac6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f91906200062f565b866001600160a01b031663a08714c06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029491906200062f565b876001600160a01b031663c5b964e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f9919062000656565b886001600160a01b031663ac4dc59a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000338573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035e91906200062f565b3380600081620003b55760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620003e857620003e8816200056b565b5050506001600160a01b0380891660805287811660a05286811660c05285811660e052848116610100528316610120526024805483919060ff19166001838181111562000439576200043962000679565b0217905550806001600160a01b0316610140816001600160a01b03168152505060c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200049a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c091906200068f565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052a91906200068f565b60ff16146200054c576040516301f86e1760e41b815260040160405180910390fd5b5050506001600160a01b039095166101605250620006b4945050505050565b336001600160a01b03821603620005c55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401620003ac565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6001600160a01b03811681146200062c57600080fd5b50565b6000602082840312156200064257600080fd5b81516200064f8162000616565b9392505050565b6000602082840312156200066957600080fd5b8151600281106200064f57600080fd5b634e487b7160e01b600052602160045260246000fd5b600060208284031215620006a257600080fd5b815160ff811681146200064f57600080fd5b60805160a05160c05160e05161010051610120516101405161016051615b18620007306000396000818160c9015261017c01526000505060006122540152600050506000505060006139bb01526000505060008181610df301528181610f000152818161102b0152818161107501526117590152615b186000f3fe6080604052600436106100c75760003560e01c8063a4c0ed3611610074578063b1dc65a41161004e578063b1dc65a414610338578063e3d0e71214610358578063f2fde38b14610378576100c7565b8063a4c0ed361461029b578063aed2e929146102bb578063afcb95d7146102f2576100c7565b806379ba5097116100a557806379ba5097146101e157806381ff7048146101f65780638da5cb5b14610270576100c7565b8063181f5a771461010e578063349e8cca1461016d57806350097389146101c1575b7f00000000000000000000000000000000000000000000000000000000000000003660008037600080366000845af43d6000803e808015610107573d6000f35b3d6000fd5b005b34801561011a57600080fd5b506101576040518060400160405280601881526020017f4175746f6d6174696f6e526567697374727920322e332e30000000000000000081525081565b6040516101649190614522565b60405180910390f35b34801561017957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610164565b3480156101cd57600080fd5b5061010c6101dc366004614a97565b610398565b3480156101ed57600080fd5b5061010c610cd9565b34801561020257600080fd5b5061024d60175460135463ffffffff74010000000000000000000000000000000000000000830481169378010000000000000000000000000000000000000000000000009093041691565b6040805163ffffffff948516815293909216602084015290820152606001610164565b34801561027c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661019c565b3480156102a757600080fd5b5061010c6102b6366004614bf8565b610ddb565b3480156102c757600080fd5b506102db6102d6366004614c54565b6110f6565b604080519215158352602083019190915201610164565b3480156102fe57600080fd5b50601354601454604080516000815260208101939093526c0100000000000000000000000090910463ffffffff1690820152606001610164565b34801561034457600080fd5b5061010c610353366004614ce5565b61128c565b34801561036457600080fd5b5061010c610373366004614d9c565b61156d565b34801561038457600080fd5b5061010c610393366004614e69565b6115a7565b6103a06115bb565b601f885111156103dc576040517f25d0209c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560ff16600003610419576040517fe77dba5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b865188511415806104385750610430866003614ebc565b60ff16885111155b1561046f576040517f1d2d1c5800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80518251146104aa576040517fcf54c06a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104b4828261163e565b6104be8888611aa6565b604051806101200160405280601460000160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff168152602001600063ffffffff168152602001866020015162ffffff168152602001866040015161ffff1681526020018760ff168152602001601460000160169054906101000a900460ff1615158152602001601460000160179054906101000a900460ff1615158152602001866101c0015115158152602001866101a0015173ffffffffffffffffffffffffffffffffffffffff16815250601460008201518160000160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550602082015181600001600c6101000a81548163ffffffff021916908363ffffffff16021790555060408201518160000160106101000a81548162ffffff021916908362ffffff16021790555060608201518160000160136101000a81548161ffff021916908361ffff16021790555060808201518160000160156101000a81548160ff021916908360ff16021790555060a08201518160000160166101000a81548160ff02191690831515021790555060c08201518160000160176101000a81548160ff02191690831515021790555060e08201518160000160186101000a81548160ff0219169083151502179055506101008201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505060405180610160016040528086610140015173ffffffffffffffffffffffffffffffffffffffff168152602001866000015163ffffffff168152602001866060015163ffffffff1681526020016016600001601c9054906101000a900463ffffffff1663ffffffff16815260200186610180015173ffffffffffffffffffffffffffffffffffffffff168152602001601660010160149054906101000a900463ffffffff1663ffffffff168152602001601660010160189054906101000a900463ffffffff1663ffffffff168152602001866080015163ffffffff168152602001866101e0015173ffffffffffffffffffffffffffffffffffffffff1681526020018660a0015163ffffffff1681526020018660c0015163ffffffff16815250601660008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548163ffffffff021916908363ffffffff16021790555060408201518160000160186101000a81548163ffffffff021916908363ffffffff160217905550606082015181600001601c6101000a81548163ffffffff021916908363ffffffff16021790555060808201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160010160146101000a81548163ffffffff021916908363ffffffff16021790555060c08201518160010160186101000a81548163ffffffff021916908363ffffffff16021790555060e082015181600101601c6101000a81548163ffffffff021916908363ffffffff1602179055506101008201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160020160146101000a81548163ffffffff021916908363ffffffff1602179055506101408201518160020160186101000a81548163ffffffff021916908363ffffffff1602179055509050508460e00151601981905550846101000151601a81905550846101200151601b819055506000601660010160189054906101000a900463ffffffff169050856101a0015173ffffffffffffffffffffffffffffffffffffffff166357e871e76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae89190614ed8565b601780547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000063ffffffff9384160217808255600192601491610b5f91859174010000000000000000000000000000000000000000900416614ef1565b92506101000a81548163ffffffff021916908363ffffffff160217905550600086604051602001610b909190614f5f565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152919052601754909150610bf5904690309074010000000000000000000000000000000000000000900463ffffffff168d8d8d878d8d612167565b601355600960008181610c088282614409565b5050505060005b87610160015151811015610c6257610c4f8861016001518281518110610c3757610c376150e6565b6020026020010151600961221190919063ffffffff16565b5080610c5a81615115565b915050610c0f565b506013546017546040517f1591690b8638f5fb2dbec82ac741805ac5da8b45dc5263f4875b0496fdce4e0592610cc59286927401000000000000000000000000000000000000000090910463ffffffff16908f908f908f9089908f908f9061514d565b60405180910390a150505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610d5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064015b60405180910390fd5b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610e4a576040517fc8bad78d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208114610e84576040517fdfe9309000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610e92828401846151e3565b60008181526004602052604090205490915065010000000000900463ffffffff90811614610eec576040517f9c0083a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600460205260409020600201547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff908116911614610f70576040517f1183afea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260046020526040902060010154610faf90859070010000000000000000000000000000000090046bffffffffffffffffffffffff166151fc565b600082815260046020908152604080832060010180546bffffffffffffffffffffffff95909516700100000000000000000000000000000000027fffffffff000000000000000000000000ffffffffffffffffffffffffffffffff9095169490941790935573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168252601c9052205461105e908590615221565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166000908152601c602090815260409182902093909355516bffffffffffffffffffffffff871681529087169183917fafd24114486da8ebfc32f3626dada8863652e187461aa74d4bfa734891506203910160405180910390a35050505050565b60008061110161223c565b601454760100000000000000000000000000000000000000000000900460ff1615611158576040517f24522f3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008581526004602090815260409182902082516101008082018552825460ff81161515835263ffffffff918104821683860181905265010000000000820483168488015273ffffffffffffffffffffffffffffffffffffffff690100000000000000000090920482166060850181905260018601546fffffffffffffffffffffffffffffffff811660808701526bffffffffffffffffffffffff70010000000000000000000000000000000082041660a08701527c0100000000000000000000000000000000000000000000000000000000900490931660c08501526002909401541660e08301528451601f8901859004850281018501909552878552909361127f9391929189908990819084018382808284376000920191909152506122ab92505050565b9097909650945050505050565b60005a60408051610120810182526014546bffffffffffffffffffffffff8116825263ffffffff6c01000000000000000000000000820416602083015262ffffff7001000000000000000000000000000000008204169282019290925261ffff730100000000000000000000000000000000000000830416606082015260ff75010000000000000000000000000000000000000000008304811660808301527601000000000000000000000000000000000000000000008304811615801560a08401527701000000000000000000000000000000000000000000000084048216151560c0840152780100000000000000000000000000000000000000000000000090930416151560e082015260155473ffffffffffffffffffffffffffffffffffffffff166101008201529192506113f0576040517f24522f3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600b602052604090205460ff16611439576040517f1099ed7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6013548a3514611475576040517fdfdcf8e700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6080810151611485906001615234565b60ff16861415806114965750858414155b156114cd576040517f0244f71a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114dd8a8a8a8a8a8a8a8a6124c6565b60006114e98a8a61272f565b905060208b0135600881901c63ffffffff166115068484876127e8565b836020015163ffffffff168163ffffffff16111561155e57601480547fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff166c0100000000000000000000000063ffffffff8416021790555b50505050505050505050505050565b60008060008580602001905181019061158691906153a7565b92509250925061159c8989898689898888610398565b505050505050505050565b6115af6115bb565b6115b881613226565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610d56565b565b60005b6023548110156116fc576022600060238381548110611662576116626150e6565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080547fffffffffff000000000000000000000000000000000000000000000000000000168155600181019190915560020180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169055806116f481615115565b915050611641565b5061170960236000614409565b60245460ff1660005b8351811015611aa057600084828151811061172f5761172f6150e6565b60200260200101519050600084838151811061174d5761174d6150e6565b602002602001015190507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117c3575060018460018111156117c1576117c1615552565b145b156117fa576040517f1183afea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821615806118355750604081015173ffffffffffffffffffffffffffffffffffffffff16155b1561186c576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff828116600090815260226020526040902054670100000000000000900416156118d6576040517f357d0cc400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6023805460018082019092557fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f42300180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8581169182179092556000818152602260209081526040918290208651815488840180518a8701805163ffffffff9095167fffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000909416841764010000000062ffffff93841602177fffffffffff0000000000000000000000000000000000000000ffffffffffffff16670100000000000000958b16959095029490941785556060808c0180519b87019b909b556080808d018051600290980180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff998a1617905589519586529351909216968401969096529251909716948101949094529551918301919091529251909216928201929092527f720a5849025dc4fd0061aed1bb30efd713cde64ce7f8d807953ecca27c8f143c9060a00160405180910390a250508080611a9890615115565b915050611712565b50505050565b60005b600e54811015611b1d57611b0a600e8281548110611ac957611ac96150e6565b600091825260209091200154601454600e5473ffffffffffffffffffffffffffffffffffffffff909216916bffffffffffffffffffffffff9091169061331b565b5080611b1581615115565b915050611aa9565b5060245460009060ff16815b600e54811015611c8e57600e8181548110611b4657611b466150e6565b6000918252602082200154600d805473ffffffffffffffffffffffffffffffffffffffff9092169550600c929184908110611b8357611b836150e6565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff9081168452838201949094526040928301822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690559286168152600b909252902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556001826001811115611c2557611c25615552565b148015611c6a575073ffffffffffffffffffffffffffffffffffffffff83166000908152600b60205260409020546201000090046bffffffffffffffffffffffff1615155b15611c7c57611c7a600f84612211565b505b80611c8681615115565b915050611b29565b50611c9b600d6000614409565b611ca7600e6000614409565b6040805160808101825260008082526020820181905291810182905260608101829052905b855181101561213757600c6000878381518110611ceb57611ceb6150e6565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040016000205460ff1615611d56576040517f77cea0fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16868281518110611d8057611d806150e6565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603611dd5576040517f815e1d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180604001604052806001151581526020018260ff16815250600c6000888481518110611e0657611e066150e6565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528181019290925260400160002082518154939092015160ff16610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff921515929092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092171790558451859082908110611eae57611eae6150e6565b60200260200101519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611f1e576040517f58a70a0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600b60209081526040918290208251608081018452905460ff80821615801584526101008304909116938301939093526bffffffffffffffffffffffff6201000082048116948301949094526e01000000000000000000000000000090049092166060830152909250611fd9576040517f6a7281ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180835260ff80831660208086019182526014546bffffffffffffffffffffffff9081166060880190815273ffffffffffffffffffffffffffffffffffffffff8a166000908152600b909352604092839020885181549551948a0151925184166e010000000000000000000000000000027fffffffffffff000000000000000000000000ffffffffffffffffffffffffffff939094166201000002929092167fffffffffffff000000000000000000000000000000000000000000000000ffff94909616610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff921515929092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009095169490941717919091169290921791909117905583600181111561211357612113615552565b0361212557612123600f85613523565b505b8061212f81615115565b915050611ccc565b50845161214b90600d906020880190614427565b50835161215f90600e906020870190614427565b505050505050565b6000808a8a8a8a8a8a8a8a8a60405160200161218b99989796959493929190615581565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291905280516020909101207dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e01000000000000000000000000000000000000000000000000000000000000179b9a5050505050505050505050565b60006122338373ffffffffffffffffffffffffffffffffffffffff8416613545565b90505b92915050565b3273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461163c576040517fb60ac5db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601454600090819077010000000000000000000000000000000000000000000000900460ff1615612308576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601480547fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000001790556040517f4585e33b000000000000000000000000000000000000000000000000000000009061237d908590602401614522565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290517f79188d1600000000000000000000000000000000000000000000000000000000815290935073ffffffffffffffffffffffffffffffffffffffff8616906379188d16906124509087908790600401615616565b60408051808303816000875af115801561246e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612492919061562f565b601480547fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff16905590969095509350505050565b600087876040516124d892919061565d565b6040519081900381206124ef918b9060200161566d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383019092526000808452908301819052909250906000805b888110156126c65760018587836020811061255b5761255b6150e6565b61256891901a601b615234565b8c8c8581811061257a5761257a6150e6565b905060200201358b8b86818110612593576125936150e6565b90506020020135604051600081526020016040526040516125d0949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa1580156125f2573d6000803e3d6000fd5b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081015173ffffffffffffffffffffffffffffffffffffffff81166000908152600c602090815290849020838501909452925460ff80821615158085526101009092041693830193909352909550935090506126a0576040517f0f4c073700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826020015160080260ff166001901b8401935080806126be90615115565b91505061253e565b50827e01010101010101010101010101010101010101010101010101010101010101841614612721576040517fc103be2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050505050565b6127686040518060c001604052806000815260200160008152602001606081526020016060815260200160608152602001606081525090565b60006127768385018561575e565b604081015151606082015151919250908114158061279957508082608001515114155b806127a95750808260a001515114155b156127e0576040517fb55ac75400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b509392505050565b600082604001515167ffffffffffffffff81111561280857612808614535565b6040519080825280602002602001820160405280156128cc57816020015b604080516101e081018252600060e08201818152610100830182905261012083018290526101408301829052610160830182905261018083018290526101a083018290526101c0830182905282526020808301829052928201819052606082018190526080820181905260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816128265790505b50905060006040518060800160405280600061ffff16815260200160006bffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff16815260200160008152509050600085610100015173ffffffffffffffffffffffffffffffffffffffff166357e871e76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561296a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061298e9190614ed8565b9050600086610100015173ffffffffffffffffffffffffffffffffffffffff166318b8f6136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a069190614ed8565b905060005b866040015151811015612e7d576004600088604001518381518110612a3257612a326150e6565b602090810291909101810151825281810192909252604090810160002081516101008082018452825460ff81161515835263ffffffff91810482169583019590955265010000000000850481169382019390935273ffffffffffffffffffffffffffffffffffffffff69010000000000000000009094048416606082015260018201546fffffffffffffffffffffffffffffffff811660808301526bffffffffffffffffffffffff70010000000000000000000000000000000082041660a08301527c0100000000000000000000000000000000000000000000000000000000900490921660c08301526002015490911660e08201528551869083908110612b3c57612b3c6150e6565b602002602001015160000181905250612b7187604001518281518110612b6457612b646150e6565b6020026020010151613594565b858281518110612b8357612b836150e6565b6020026020010151606001906001811115612ba057612ba0615552565b90816001811115612bb357612bb3615552565b81525050612c1787604001518281518110612bd057612bd06150e6565b60200260200101518489608001518481518110612bef57612bef6150e6565b6020026020010151888581518110612c0957612c096150e6565b60200260200101518c61363f565b868381518110612c2957612c296150e6565b6020026020010151602001878481518110612c4657612c466150e6565b602002602001015160c0018281525082151515158152505050848181518110612c7157612c716150e6565b60200260200101516020015115612ca157600184600001818151612c95919061584b565b61ffff16905250612ca6565b612e6b565b612d0c858281518110612cbb57612cbb6150e6565b6020026020010151600001516060015188606001518381518110612ce157612ce16150e6565b60200260200101518960a001518481518110612cff57612cff6150e6565b60200260200101516122ab565b868381518110612d1e57612d1e6150e6565b6020026020010151604001878481518110612d3b57612d3b6150e6565b6020026020010151608001828152508215151515815250505087608001516001612d659190615234565b612d739060ff166040615866565b6103a48860a001518381518110612d8c57612d8c6150e6565b602002602001015151612d9f9190615221565b612da99190615221565b858281518110612dbb57612dbb6150e6565b602002602001015160a0018181525050848181518110612ddd57612ddd6150e6565b602002602001015160a0015184606001818151612dfa9190615221565b9052508451859082908110612e1157612e116150e6565b60200260200101516080015186612e28919061587d565b9550612e6b87604001518281518110612e4357612e436150e6565b602002602001015184878481518110612e5e57612e5e6150e6565b602002602001015161375e565b80612e7581615115565b915050612a0b565b50825161ffff16600003612e945750505050505050565b6155f0612ea2366010615866565b5a612ead908861587d565b612eb79190615221565b612ec19190615221565b8351909550611b5890612ed89061ffff16876158bf565b612ee29190615221565b604080516060810182526000808252602082018190529181018290529196505b87604001515181101561315557858181518110612f2157612f216150e6565b6020026020010151602001511561314357612f5d89878381518110612f4857612f486150e6565b60200260200101516000015160e00151613863565b915060006130278a6040518061010001604052808a8681518110612f8357612f836150e6565b60200260200101516080015181526020018b815260200189606001518b8781518110612fb157612fb16150e6565b602002602001015160a0015189612fc89190615866565b612fd291906158bf565b81526020018c6000015181526020018c602001518152602001612ff48e6139b4565b81526020810187905260016040918201528c015180518690811061301a5761301a6150e6565b6020026020010151613aa5565b905080606001518660400181815161303f91906151fc565b6bffffffffffffffffffffffff1690525060408101516020870180516130669083906151fc565b6bffffffffffffffffffffffff16905250865187908390811061308b5761308b6150e6565b6020026020010151604001511515896040015183815181106130af576130af6150e6565b60200260200101517fad8cc9579b21dfe2c2f6ea35ba15b656e46b4f5b0cb424f52739b8ce5cac9c5b836060015184604001516130ec91906151fc565b8a86815181106130fe576130fe6150e6565b6020026020010151608001518c8e608001518881518110613121576131216150e6565b602002602001015160405161313994939291906158d3565b60405180910390a3505b8061314d81615115565b915050612f02565b5050602083810151336000908152600b909252604090912080546002906131919084906201000090046bffffffffffffffffffffffff166151fc565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508260400151601460000160008282829054906101000a90046bffffffffffffffffffffffff166131ef91906151fc565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff8216036132a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610d56565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600b602090815260408083208151608081018352905460ff80821615801584526101008304909116948301949094526bffffffffffffffffffffffff6201000082048116938301939093526e01000000000000000000000000000090049091166060820152906135175760008160600151856133b39190615910565b905060006133c18583615935565b905080836040018181516133d591906151fc565b6bffffffffffffffffffffffff169052506133f08582615960565b8360600181815161340191906151fc565b6bffffffffffffffffffffffff90811690915273ffffffffffffffffffffffffffffffffffffffff89166000908152600b602090815260409182902087518154928901519389015160608a015186166e010000000000000000000000000000027fffffffffffff000000000000000000000000ffffffffffffffffffffffffffff919096166201000002167fffffffffffff000000000000000000000000000000000000000000000000ffff60ff95909516610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff921515929092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909416939093171792909216179190911790555050505b60400151949350505050565b60006122338373ffffffffffffffffffffffffffffffffffffffff8416613d13565b600081815260018301602052604081205461358c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155612236565b506000612236565b6000818160045b600f811015613621577fff0000000000000000000000000000000000000000000000000000000000000082168382602081106135d9576135d96150e6565b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461360f57506000949350505050565b8061361981615115565b91505061359b565b5081600f1a600181111561363757613637615552565b949350505050565b60008080808560600151600181111561365a5761365a615552565b036136805761366c8888888888613e06565b61367b57600092509050613754565b6136f8565b60018560600151600181111561369857613698615552565b036136c65760006136ab89898988613f90565b92509050806136c05750600092509050613754565b506136f8565b6040517ff2b2d41200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84516040015163ffffffff16871061374d57877fc3237c8807c467c1b39b8d0395eff077313e691bf0a7388106792564ebfd56368760405161373a9190614522565b60405180910390a2600092509050613754565b6001925090505b9550959350505050565b60008160600151600181111561377657613776615552565b036137da57600083815260046020526040902060010180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff851602179055505050565b6001816060015160018111156137f2576137f2615552565b0361385e5760c08101805160009081526008602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055915191517fa4a4e334c0e330143f9437484fe516c13bc560b86b5b0daf58e7084aaac228f29190a25b505050565b604080516060810182526000808252602080830182815283850183905273ffffffffffffffffffffffffffffffffffffffff868116845260229092528483208054640100000000810462ffffff1690925263ffffffff8216855285517ffeaf968c00000000000000000000000000000000000000000000000000000000815295519495909484936701000000000000009093049092169163feaf968c9160048082019260a0929091908290030181865afa158015613925573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061394991906159aa565b5093505092505060008213158061395f57508042105b8061398f57506000866040015162ffffff1611801561398f5750613983814261587d565b866040015162ffffff16105b156139a357600183015460408501526139ab565b604084018290525b50505092915050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015613a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a4891906159aa565b50935050925050600082131580613a5e57508042105b80613a8e57506000846040015162ffffff16118015613a8e5750613a82814261587d565b846040015162ffffff16105b15613a9e575050601b5492915050565b5092915050565b604080516080810182526000808252602082018190529181018290526060810182905290613ad3858561419d565b60008481526004602090815260408220600101549083015183519394507001000000000000000000000000000000009091046bffffffffffffffffffffffff1692613b1e91906151fc565b905082600001516bffffffffffffffffffffffff16826bffffffffffffffffffffffff161015613ba357819050613b8486608001518760c0015160400151846bffffffffffffffffffffffff16613b759190615866565b613b7f91906158bf565b614367565b6bffffffffffffffffffffffff16604084015260006060840152613c2f565b806bffffffffffffffffffffffff16826bffffffffffffffffffffffff161015613c2f57819050613c1b83604001516bffffffffffffffffffffffff1687608001518860c0015160400151856bffffffffffffffffffffffff16613c079190615866565b613c1191906158bf565b613b7f919061587d565b6bffffffffffffffffffffffff1660608401525b60008581526004602052604090206001018054829190601090613c7590849070010000000000000000000000000000000090046bffffffffffffffffffffffff16615910565b82546101009290920a6bffffffffffffffffffffffff81810219909316918316021790915560008781526004602052604081206001018054928516935091613cd09084906fffffffffffffffffffffffffffffffff166159fa565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508293505050509392505050565b60008181526001830160205260408120548015613dfc576000613d3760018361587d565b8554909150600090613d4b9060019061587d565b9050818114613db0576000866000018281548110613d6b57613d6b6150e6565b9060005260206000200154905080876000018481548110613d8e57613d8e6150e6565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613dc157613dc1615a23565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612236565b6000915050612236565b60008084806020019051810190613e1d9190615a52565b845160c00151815191925063ffffffff90811691161015613e7a57867f405288ea7be309e16cfdf481367f90a413e1d4634fcdaf8966546db9b93012e886604051613e689190614522565b60405180910390a26000915050613f87565b8260e001518015613f3a5750602081015115801590613f3a5750602081015161010084015182516040517f85df51fd00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015273ffffffffffffffffffffffffffffffffffffffff909116906385df51fd90602401602060405180830381865afa158015613f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f379190614ed8565b14155b80613f4c5750805163ffffffff168611155b15613f8157867f6aa7f60c176da7af894b384daea2249497448137f5943c1237ada8bc92bdc30186604051613e689190614522565b60019150505b95945050505050565b600080600084806020019051810190613fa99190615aaa565b905060008782600001518360200151846040015160405160200161400b94939291909384526020840192909252604083015260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016606082015260640190565b6040516020818303038152906040528051906020012090508460e0015180156140e657506080820151158015906140e65750608082015161010086015160608401516040517f85df51fd00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015273ffffffffffffffffffffffffffffffffffffffff909116906385df51fd90602401602060405180830381865afa1580156140bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140e39190614ed8565b14155b806140fb575086826060015163ffffffff1610155b1561414557877f6aa7f60c176da7af894b384daea2249497448137f5943c1237ada8bc92bdc301876040516141309190614522565b60405180910390a26000935091506141949050565b60008181526008602052604090205460ff161561418c57877f405288ea7be309e16cfdf481367f90a413e1d4634fcdaf8966546db9b93012e8876040516141309190614522565b600193509150505b94509492505050565b6040805160808101825260008082526020820181905291810182905260608101919091526000836060015161ffff1683606001516141db9190615866565b90508260e0015180156141ed5750803a105b156141f557503a5b60008360a001518460400151856020015186600001516142159190615221565b61421f9085615866565b6142299190615221565b6142339190615866565b905061424c8460c001516040015182613b7f91906158bf565b6bffffffffffffffffffffffff168352608084015161426f90613b7f90836158bf565b6bffffffffffffffffffffffff16604084015260c0840151602001516000906142a69062ffffff16683635c9adc5dea00000615866565b9050600081633b9aca008760a001518860c001516000015163ffffffff1689604001518a60000151896142d99190615866565b6142e39190615221565b6142ed9190615866565b6142f79190615866565b61430191906158bf565b61430b9190615221565b90506143248660c001516040015182613b7f91906158bf565b6bffffffffffffffffffffffff166020860152608086015161434a90613b7f90836158bf565b6bffffffffffffffffffffffff1660608601525050505092915050565b60006bffffffffffffffffffffffff821115614405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610d56565b5090565b50805460008255906000526020600020908101906115b891906144a9565b8280548282559060005260206000209081019282156144a1579160200282015b828111156144a157825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190614447565b506144059291505b5b8082111561440557600081556001016144aa565b6000815180845260005b818110156144e4576020818501810151868301820152016144c8565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061223360208301846144be565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610200810167ffffffffffffffff8111828210171561458857614588614535565b60405290565b60405160a0810167ffffffffffffffff8111828210171561458857614588614535565b60405160c0810167ffffffffffffffff8111828210171561458857614588614535565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561461b5761461b614535565b604052919050565b600067ffffffffffffffff82111561463d5761463d614535565b5060051b60200190565b73ffffffffffffffffffffffffffffffffffffffff811681146115b857600080fd5b803561467481614647565b919050565b600082601f83011261468a57600080fd5b8135602061469f61469a83614623565b6145d4565b82815260059290921b840181019181810190868411156146be57600080fd5b8286015b848110156146e25780356146d581614647565b83529183019183016146c2565b509695505050505050565b803560ff8116811461467457600080fd5b63ffffffff811681146115b857600080fd5b8035614674816146fe565b62ffffff811681146115b857600080fd5b80356146748161471b565b61ffff811681146115b857600080fd5b803561467481614737565b80151581146115b857600080fd5b803561467481614752565b6000610200828403121561477e57600080fd5b614786614564565b905061479182614710565b815261479f6020830161472c565b60208201526147b060408301614747565b60408201526147c160608301614710565b60608201526147d260808301614710565b60808201526147e360a08301614710565b60a08201526147f460c08301614710565b60c082015260e0828101359082015261010080830135908201526101208083013590820152610140614827818401614669565b908201526101608281013567ffffffffffffffff81111561484757600080fd5b61485385828601614679565b828401525050610180614867818401614669565b908201526101a0614879838201614669565b908201526101c061488b838201614760565b908201526101e061489d838201614669565b9082015292915050565b803567ffffffffffffffff8116811461467457600080fd5b600082601f8301126148d057600080fd5b813567ffffffffffffffff8111156148ea576148ea614535565b61491b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016145d4565b81815284602083860101111561493057600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261495e57600080fd5b8135602061496e61469a83614623565b82815260059290921b8401810191818101908684111561498d57600080fd5b8286015b848110156146e25780356149a481614647565b8352918301918301614991565b6bffffffffffffffffffffffff811681146115b857600080fd5b600082601f8301126149dc57600080fd5b813560206149ec61469a83614623565b82815260a09283028501820192828201919087851115614a0b57600080fd5b8387015b85811015614a8a5781818a031215614a275760008081fd5b614a2f61458e565b8135614a3a816146fe565b815281860135614a498161471b565b81870152604082810135614a5c81614647565b9082015260608281013590820152608080830135614a79816149b1565b908201528452928401928101614a0f565b5090979650505050505050565b600080600080600080600080610100898b031215614ab457600080fd5b883567ffffffffffffffff80821115614acc57600080fd5b614ad88c838d01614679565b995060208b0135915080821115614aee57600080fd5b614afa8c838d01614679565b9850614b0860408c016146ed565b975060608b0135915080821115614b1e57600080fd5b614b2a8c838d0161476b565b9650614b3860808c016148a7565b955060a08b0135915080821115614b4e57600080fd5b614b5a8c838d016148bf565b945060c08b0135915080821115614b7057600080fd5b614b7c8c838d0161494d565b935060e08b0135915080821115614b9257600080fd5b50614b9f8b828c016149cb565b9150509295985092959890939650565b60008083601f840112614bc157600080fd5b50813567ffffffffffffffff811115614bd957600080fd5b602083019150836020828501011115614bf157600080fd5b9250929050565b60008060008060608587031215614c0e57600080fd5b8435614c1981614647565b935060208501359250604085013567ffffffffffffffff811115614c3c57600080fd5b614c4887828801614baf565b95989497509550505050565b600080600060408486031215614c6957600080fd5b83359250602084013567ffffffffffffffff811115614c8757600080fd5b614c9386828701614baf565b9497909650939450505050565b60008083601f840112614cb257600080fd5b50813567ffffffffffffffff811115614cca57600080fd5b6020830191508360208260051b8501011115614bf157600080fd5b60008060008060008060008060e0898b031215614d0157600080fd5b606089018a811115614d1257600080fd5b8998503567ffffffffffffffff80821115614d2c57600080fd5b614d388c838d01614baf565b909950975060808b0135915080821115614d5157600080fd5b614d5d8c838d01614ca0565b909750955060a08b0135915080821115614d7657600080fd5b50614d838b828c01614ca0565b999c989b50969995989497949560c00135949350505050565b60008060008060008060c08789031215614db557600080fd5b863567ffffffffffffffff80821115614dcd57600080fd5b614dd98a838b01614679565b97506020890135915080821115614def57600080fd5b614dfb8a838b01614679565b9650614e0960408a016146ed565b95506060890135915080821115614e1f57600080fd5b614e2b8a838b016148bf565b9450614e3960808a016148a7565b935060a0890135915080821115614e4f57600080fd5b50614e5c89828a016148bf565b9150509295509295509295565b600060208284031215614e7b57600080fd5b8135614e8681614647565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff8181168382160290811690818114613a9e57613a9e614e8d565b600060208284031215614eea57600080fd5b5051919050565b63ffffffff818116838216019080821115613a9e57613a9e614e8d565b600081518084526020808501945080840160005b83811015614f5457815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614f22565b509495945050505050565b60208152614f7660208201835163ffffffff169052565b60006020830151614f8e604084018262ffffff169052565b50604083015161ffff8116606084015250606083015163ffffffff8116608084015250608083015163ffffffff811660a08401525060a083015163ffffffff811660c08401525060c083015163ffffffff811660e08401525060e08301516101008381019190915283015161012080840191909152830151610140808401919091528301516101606150378185018373ffffffffffffffffffffffffffffffffffffffff169052565b808501519150506102006101808181860152615057610220860184614f0e565b908601519092506101a06150828682018373ffffffffffffffffffffffffffffffffffffffff169052565b86015190506101c06150ab8682018373ffffffffffffffffffffffffffffffffffffffff169052565b86015190506101e06150c08682018315159052565b9095015173ffffffffffffffffffffffffffffffffffffffff1693019290925250919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361514657615146614e8d565b5060010190565b600061012063ffffffff808d1684528b6020850152808b1660408501525080606084015261517d8184018a614f0e565b905082810360808401526151918189614f0e565b905060ff871660a084015282810360c08401526151ae81876144be565b905067ffffffffffffffff851660e08401528281036101008401526151d381856144be565b9c9b505050505050505050505050565b6000602082840312156151f557600080fd5b5035919050565b6bffffffffffffffffffffffff818116838216019080821115613a9e57613a9e614e8d565b8082018082111561223657612236614e8d565b60ff818116838216019081111561223657612236614e8d565b8051614674816146fe565b80516146748161471b565b805161467481614737565b805161467481614647565b600082601f83011261528a57600080fd5b8151602061529a61469a83614623565b82815260059290921b840181019181810190868411156152b957600080fd5b8286015b848110156146e25780516152d081614647565b83529183019183016152bd565b805161467481614752565b600082601f8301126152f957600080fd5b8151602061530961469a83614623565b82815260a0928302850182019282820191908785111561532857600080fd5b8387015b85811015614a8a5781818a0312156153445760008081fd5b61534c61458e565b8151615357816146fe565b8152818601516153668161471b565b8187015260408281015161537981614647565b9082015260608281015190820152608080830151615396816149b1565b90820152845292840192810161532c565b6000806000606084860312156153bc57600080fd5b835167ffffffffffffffff808211156153d457600080fd5b9085019061020082880312156153e957600080fd5b6153f1614564565b6153fa8361524d565b815261540860208401615258565b602082015261541960408401615263565b604082015261542a6060840161524d565b606082015261543b6080840161524d565b608082015261544c60a0840161524d565b60a082015261545d60c0840161524d565b60c082015260e083810151908201526101008084015190820152610120808401519082015261014061549081850161526e565b9082015261016083810151838111156154a857600080fd5b6154b48a828701615279565b8284015250506101806154c881850161526e565b908201526101a06154da84820161526e565b908201526101c06154ec8482016152dd565b908201526101e06154fe84820161526e565b90820152602087015190955091508082111561551957600080fd5b61552587838801615279565b9350604086015191508082111561553b57600080fd5b50615548868287016152e8565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006101208b835273ffffffffffffffffffffffffffffffffffffffff8b16602084015267ffffffffffffffff808b1660408501528160608501526155c88285018b614f0e565b915083820360808501526155dc828a614f0e565b915060ff881660a085015283820360c08501526155f982886144be565b90861660e085015283810361010085015290506151d381856144be565b82815260406020820152600061363760408301846144be565b6000806040838503121561564257600080fd5b825161564d81614752565b6020939093015192949293505050565b8183823760009101908152919050565b8281526080810160608360208401379392505050565b600082601f83011261569457600080fd5b813560206156a461469a83614623565b82815260059290921b840181019181810190868411156156c357600080fd5b8286015b848110156146e257803583529183019183016156c7565b600082601f8301126156ef57600080fd5b813560206156ff61469a83614623565b82815260059290921b8401810191818101908684111561571e57600080fd5b8286015b848110156146e257803567ffffffffffffffff8111156157425760008081fd5b6157508986838b01016148bf565b845250918301918301615722565b60006020828403121561577057600080fd5b813567ffffffffffffffff8082111561578857600080fd5b9083019060c0828603121561579c57600080fd5b6157a46145b1565b82358152602083013560208201526040830135828111156157c457600080fd5b6157d087828601615683565b6040830152506060830135828111156157e857600080fd5b6157f487828601615683565b60608301525060808301358281111561580c57600080fd5b615818878286016156de565b60808301525060a08301358281111561583057600080fd5b61583c878286016156de565b60a08301525095945050505050565b61ffff818116838216019080821115613a9e57613a9e614e8d565b808202811582820484141761223657612236614e8d565b8181038181111561223657612236614e8d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826158ce576158ce615890565b500490565b6bffffffffffffffffffffffff8516815283602082015282604082015260806060820152600061590660808301846144be565b9695505050505050565b6bffffffffffffffffffffffff828116828216039080821115613a9e57613a9e614e8d565b60006bffffffffffffffffffffffff8084168061595457615954615890565b92169190910492915050565b6bffffffffffffffffffffffff81811683821602808216919082811461598857615988614e8d565b505092915050565b805169ffffffffffffffffffff8116811461467457600080fd5b600080600080600060a086880312156159c257600080fd5b6159cb86615990565b94506020860151935060408601519250606086015191506159ee60808701615990565b90509295509295909350565b6fffffffffffffffffffffffffffffffff818116838216019080821115613a9e57613a9e614e8d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600060408284031215615a6457600080fd5b6040516040810181811067ffffffffffffffff82111715615a8757615a87614535565b6040528251615a95816146fe565b81526020928301519281019290925250919050565b600060a08284031215615abc57600080fd5b615ac461458e565b82518152602083015160208201526040830151615ae0816146fe565b60408201526060830151615af3816146fe565b6060820152608092830151928101929092525091905056fea164736f6c6343000813000a", } var AutomationRegistryABI = AutomationRegistryMetaData.ABI diff --git a/core/gethwrappers/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 6f545de49a1..837af2e54f8 100644 --- a/core/gethwrappers/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -14,7 +14,7 @@ automation_registry_logic_a_wrapper_2_3: ../../contracts/solc/v0.8.19/Automation automation_registry_logic_b_wrapper_2_2: ../../contracts/solc/v0.8.19/AutomationRegistryLogicB2_2/AutomationRegistryLogicB2_2.abi ../../contracts/solc/v0.8.19/AutomationRegistryLogicB2_2/AutomationRegistryLogicB2_2.bin a6d33dfbbfb0ff253eb59a51f4f6d6d4c22ea5ec95aae52d25d49a312b37a22f automation_registry_logic_b_wrapper_2_3: ../../contracts/solc/v0.8.19/AutomationRegistryLogicB2_3/AutomationRegistryLogicB2_3.abi ../../contracts/solc/v0.8.19/AutomationRegistryLogicB2_3/AutomationRegistryLogicB2_3.bin 92956f3846438cc0e0d305e0fd71ea656d786532a9644a039bcf2657cf6ee562 automation_registry_wrapper_2_2: ../../contracts/solc/v0.8.19/AutomationRegistry2_2/AutomationRegistry2_2.abi ../../contracts/solc/v0.8.19/AutomationRegistry2_2/AutomationRegistry2_2.bin de60f69878e9b32a291a001c91fc8636544c2cfbd9b507c8c1a4873b602bfb62 -automation_registry_wrapper_2_3: ../../contracts/solc/v0.8.19/AutomationRegistry2_3/AutomationRegistry2_3.abi ../../contracts/solc/v0.8.19/AutomationRegistry2_3/AutomationRegistry2_3.bin 58158d11bba7f93fa0efbeb3d0c04ed5886553858d6b1fc6f51c5445d20891a3 +automation_registry_wrapper_2_3: ../../contracts/solc/v0.8.19/AutomationRegistry2_3/AutomationRegistry2_3.abi ../../contracts/solc/v0.8.19/AutomationRegistry2_3/AutomationRegistry2_3.bin c37ec7f0ef8ff5f07ba33a5c612fdc31693cf2ad75f324eb52a31ea5c575d23f automation_utils_2_1: ../../contracts/solc/v0.8.16/AutomationUtils2_1/AutomationUtils2_1.abi ../../contracts/solc/v0.8.16/AutomationUtils2_1/AutomationUtils2_1.bin 815b17b63f15d26a0274b962eefad98cdee4ec897ead58688bbb8e2470e585f5 automation_utils_2_2: ../../contracts/solc/v0.8.19/AutomationUtils2_2/AutomationUtils2_2.abi ../../contracts/solc/v0.8.19/AutomationUtils2_2/AutomationUtils2_2.bin 8743f6231aaefa3f2a0b2d484258070d506e2d0860690e66890dccc3949edb2e automation_utils_2_3: ../../contracts/solc/v0.8.19/AutomationUtils2_3/AutomationUtils2_3.abi ../../contracts/solc/v0.8.19/AutomationUtils2_3/AutomationUtils2_3.bin 11e2b481dc9a4d936e3443345d45d2cc571164459d214917b42a8054b295393b