{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC1155FullBurnProxied",
  "sourceName": "contracts/token/ERC1155/preset/proxied/ERC1155FullBurnProxied.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "ERC1155BalanceOfAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC1155BalanceOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC1155InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC1155MintToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC1155NonApproved",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "ERC1155SafeBatchTransferRejected",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC1155SafeTransferRejected",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "ERC1155SelfApprovalForAll",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC1155TransferToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "ERC2981IncorrectRoyaltyPercentage",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC2981IncorrectRoyaltyReceiver",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedCall",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InconsistentArrayLengths",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        }
      ],
      "name": "IncorrectTokenContractType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "currentPhase",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "newPhase",
          "type": "uint256"
        }
      ],
      "name": "InitializationPhaseAlreadyReached",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotContractOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotMetadataResolver",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotRoleHolder",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "OperatorNotAllowed",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "SafeERC20FailedOperation",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "TransferBatch",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "TransferSingle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "value",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "URI",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "MINTER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ROYALTY_FEE_DENOMINATOR",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "owners",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        }
      ],
      "name": "balanceOfBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "balances",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchBurnFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "tokenURIs",
          "type": "string[]"
        }
      ],
      "name": "batchSetTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "burnFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "forwarderRegistry",
      "outputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "hasRole_",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "tokenName",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "tokenSymbol",
          "type": "string"
        },
        {
          "internalType": "contract ITokenMetadataResolver",
          "name": "metadataResolver",
          "type": "address"
        },
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "filterRegistry",
          "type": "address"
        }
      ],
      "name": "init",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "approvedForAll",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forwarder",
          "type": "address"
        }
      ],
      "name": "isTrustedForwarder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "metadataResolver",
      "outputs": [
        {
          "internalType": "contract ITokenMetadataResolver",
          "name": "tokenMetadataResolver",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "tokenName",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "operatorFilterRegistry",
      "outputs": [
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "contract IERC20[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC20s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "contract IERC721[]",
          "name": "contracts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC721s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "salePrice",
          "type": "uint256"
        }
      ],
      "name": "royaltyInfo",
      "outputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "royaltyAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeDeliver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "setRoyaltyPercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        }
      ],
      "name": "setRoyaltyReceiver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "tokenURI",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "tokenSymbol",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "registry",
          "type": "address"
        }
      ],
      "name": "updateOperatorFilterRegistry",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "uri",
      "outputs": [
        {
          "internalType": "string",
          "name": "metadataURI",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a034607457601f61449f38819003918201601f19168301916001600160401b03831184841017607957808492602094604052833981010312607457516001600160a01b038116810360745760805260405161440f908161009082396080518181816122c0015281816138140152613dbc0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c8062fdd58e146133f557806301ffc9a71461336e57806306fdde03146133135780630d6a5bbb146130b15780630e07f854146127f75780630e89341c146126a0578063114ba8ee146125b9578063124d91e51461249e578063162094c4146123d75780632a55205a146122e45780632b4c9f16146122755780632eb2c2d614611e4f5780632f2ff15d14611cc35780634e1273f414611be5578063572b6c0514611b9a5780635cfa929714611ad057806361ba27da146119b45780636706467b1461184c57806373c8a9581461169c578063805349341461150a5780638bb9c5bf1461139b5780638da5cb5b1461132a5780638dc251e3146111fd57806391d148541461116557806395d89b41146110f2578063a0c76f6214611081578063a22cb46514610f21578063b0ccc31e14610eb0578063c3666c3614610c73578063d539139314610c1a578063d547741f14610a91578063e1a8bf2c14610a55578063e8ab9ccc14610849578063e985e9c514610795578063f242432a14610463578063f2fde38b1461036f5763f7ba94bd146101b257600080fd5b34610313576101c03661356e565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610201613da5565b925416911690810361034257508181036103185760005b81811061022157005b61022c81838761385c565b3573ffffffffffffffffffffffffffffffffffffffff81168091036103135761025682858761385c565b35908147106102e157600080809381935af13d156102d9573d9061027982613746565b9161028760405193846136a1565b82523d6000602084013e5b156102a05750600101610218565b8051156102af57602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b606090610292565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576103a6613463565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc906103d0613da5565b9073ffffffffffffffffffffffffffffffffffffffff808454169216828103610342575073ffffffffffffffffffffffffffffffffffffffff169182820361041457005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346103135760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135761049a613463565b6104a2613486565b604435906064359260843567ffffffffffffffff8111610313576104ca903690600401613540565b926104d3613da5565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff821603610785575b505073ffffffffffffffffffffffffffffffffffffffff8216947f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612861561075b57610576828783613fcb565b156107115773ffffffffffffffffffffffffffffffffffffffff9161059f8a8a878a8796614212565b169416918583867fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518c81528d6020820152a43b6105dc57005b6020926105ea913691613780565b9261064060405194859384937ff23a6e610000000000000000000000000000000000000000000000000000000085526004850152602484015287604484015288606484015260a0608484015260a48301906134cc565b03816000865af1908115610705577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000916000916106d6575b5016036106a357005b7f40f39d380000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b6106f8915060203d6020116106fe575b6106f081836136a1565b810190613f93565b8661069a565b503d6106e6565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff8681847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b7fb5e890150000000000000000000000000000000000000000000000000000000060005260046000fd5b61078e91614127565b878561052a565b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576107cc613463565b73ffffffffffffffffffffffffffffffffffffffff6107e9613486565b91166000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103135760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135760043567ffffffffffffffff81116103135761089890369060040161350f565b60243567ffffffffffffffff8111610313576108b890369060040161350f565b929060443567ffffffffffffffff8111610313576108da90369060040161350f565b93909160643567ffffffffffffffff8111610313576108fd903690600401613540565b939091610908613da5565b97610933897fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613a84565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86129461095e816136e2565b9761096c604051998a6136a1565b818952602089019160051b81019036821161031357915b818310610a2857505050916109a16109a9926109b1959436916136fa565b9736916136fa565b933691613780565b9183519480518614801590610a1d575b6103185760005b8681106109d157005b80610a178673ffffffffffffffffffffffffffffffffffffffff6109f76001958b613b46565b5116610a038487613b46565b51610a0e8589613b46565b51918d8a613c24565b016109c8565b5081518614156109c1565b823573ffffffffffffffffffffffffffffffffffffffff8116810361031357815260209283019201610983565b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576020604051620186a08152f35b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357600435610acb613486565b610ad3613da5565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361034257507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416610b8557005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b3461031357610c8136613612565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610cc6613da5565b92541691169081036103425750808214801590610ea6575b6103185760005b828110610cee57005b73ffffffffffffffffffffffffffffffffffffffff610d16610d1183858a61385c565b613c03565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa90811561070557600091610e78575b5015610e4b575073ffffffffffffffffffffffffffffffffffffffff610da5610d1183858a61385c565b1690610db5610d1182868961385c565b91610dc182878b61385c565b3592813b1561031357606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af191821561070557600192610e3a575b5001610ce5565b6000610e45916136a1565b88610e33565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b610e99915060203d8111610e9f575b610e9181836136a1565b810190613d8d565b89610d7b565b503d610e87565b5082821415610cde565b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357610f58613463565b602435908115159182810361031357611052575b73ffffffffffffffffffffffffffffffffffffffff80610f8a613da5565b169116918183146110245760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86138252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507ffb0fdf610000000000000000000000000000000000000000000000000000000060005260045260246000fd5b61107c817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30614127565b610f6c565b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135761116161114d7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56139c2565b6040519182916020835260208301906134cc565b0390f35b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135761119c613486565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357611234613463565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611273613da5565b925416911690810361034257507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff8116156113005773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226004356113f6613da5565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416156114c25760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610c15565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b346103135760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357611541613463565b60243567ffffffffffffffff81116103135761156190369060040161350f565b9060443567ffffffffffffffff81116103135761158290369060040161350f565b907f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612936115ad613da5565b94838203610318576115c0868883613fcb565b156116525760005b828110611626575050946116217f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb9373ffffffffffffffffffffffffffffffffffffffff93600098856040519687961699169785613bd9565b0390a4005b8061164c611637600193868a61385c565b3561164383898961385c565b35908b8661404b565b016115c8565b73ffffffffffffffffffffffffffffffffffffffff8781887f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b34610313576116aa36613612565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806116ed613da5565b92541691169081036103425750808414801590611842575b6103185760005b84811061171557005b61172081838861385c565b3573ffffffffffffffffffffffffffffffffffffffff811690818103610313576000602091611753610d11868b8e61385c565b826117bd6117e9611765898d8d61385c565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826136a1565b51925af115610705576000513d6118395750803b155b61180c575060010161170c565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600114156117ff565b5082841415611705565b346103135761185a3661356e565b8083949293036103185773ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416330361198657916000907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301915b8581106118d657005b84811015611957578060051b820135838112156103135782019081359167ffffffffffffffff8311610313576020018236038113610313577f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b60019361193d848b8a61385c565b359261194e604051928392836137b7565b0390a2016118cd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f22060671000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611a25613da5565b925416911690810361034257507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a08111611aa357815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103135760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357611b07613463565b6064359067ffffffffffffffff821161031357611b2b611b98923690600401613540565b611b8a611b36613da5565b92611b61847fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613a84565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612923691613780565b926044359260243592613c24565b005b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576020611bdb611bd6613463565b6137fd565b6040519015158152f35b3461031357611bf33661356e565b9192917f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612919080850361031857611c29856136e2565b94611c3760405196876136a1565b8086527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611c64826136e2565b0136602088013760005b818110611c8b57604051602080825281906111619082018a6135de565b80611cb2611c9f610d11600194868b61385c565b611caa83878961385c565b35908861386c565b611cbc828a613b46565b5201611c6e565b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357600435611cfd613486565b611d05613da5565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361034257507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff6040600020541615611db857005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610c15565b346103135760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357611e86613463565b611e8e613486565b60443567ffffffffffffffff811161031357611eae90369060040161350f565b929060643567ffffffffffffffff811161031357611ed090369060040161350f565b9360843567ffffffffffffffff811161031357611ef1903690600401613540565b939091611efc613da5565b957f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308773ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff821603612265575b505073ffffffffffffffffffffffffffffffffffffffff8216967f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612881561075b57898b0361031857611fa6828483613fcb565b1561221b5760005b8b81106121ec575050928992888a73ffffffffffffffffffffffffffffffffffffffff9897947f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8a61201199169a8b92169889936040519182918d8c8b85613bd9565b0390a43b61201b57005b602094612030612038926120409536916136fa565b9936916136fa565b953691613780565b926120f060405194859384937fbc197c810000000000000000000000000000000000000000000000000000000085526004850152602484015260a060448401526120c061209060a485018b6135de565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc858203016064860152886135de565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160848501526134cc565b03816000875af1908115610705577fbc197c8100000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000916000916121cd575b50160361215357005b6121c9906121996040519485947fc287817e00000000000000000000000000000000000000000000000000000000865260048601526060602486015260648501906135de565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160448501526135de565b0390fd5b6121e6915060203d6020116106fe576106f081836136a1565b8661214a565b806122158c61220b8f94612203816001978d61385c565b35928d61385c565b3590888887614212565b01611fae565b73ffffffffffffffffffffffffffffffffffffffff8381847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b61226e91614127565b8987611f53565b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c90801580156123cf575b1561239957505061116160005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b61116191620186a08210156123bc576123b690620186a092613b5a565b04612369565b620186a06123ca9204613b5a565b612369565b50811561235c565b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135760243567ffffffffffffffff811161031357612426903690600401613540565b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a654163303611986576124997f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b9160405191829160043595836137b7565b0390a2005b346103135760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576124d5613463565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612602435604435612504613da5565b92612510848683613fcb565b1561256f5773ffffffffffffffffffffffffffffffffffffffff80868461255e7fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62968860009b60409861404b565b8451968752602087015216941692a4005b73ffffffffffffffffffffffffffffffffffffffff8581867f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576125f0613463565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061262f613da5565b9254169116908103610342575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313577f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6546040517ff724dad700000000000000000000000000000000000000000000000000000000815230600480830191909152356024820152906000908290604490829073ffffffffffffffffffffffffffffffffffffffff165afa9081156107055760009161276f575b60405160208082528190611161908201856134cc565b3d8083833e61277e81836136a1565b8101906020818303126127ef5780519067ffffffffffffffff82116127f3570181601f820112156127ef578051926127b584613746565b926127c360405194856136a1565b848452602085840101116127ec5750611161926127e691602080850191016134a9565b90612759565b80fd5b8280fd5b8380fd5b346103135760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135760043567ffffffffffffffff811161031357612846903690600401613540565b60243567ffffffffffffffff811161031357612866903690600401613540565b6044939193359173ffffffffffffffffffffffffffffffffffffffff83168303610313576064359373ffffffffffffffffffffffffffffffffffffffff85168503610313577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc6128d4613da5565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015612d70575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff16908161305c575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f55f2baa086bcadb68563d14bf0ae4964705cc6bc8fd476a834dc8cb4e83cc92a80548216831790557f798ccc21e731e7c6df0f17af649aebfe86cf40852d893cd6be9ac4b4f1a38c4a80548216831790557f9e2577fef401b922351ba64c2dd1b1973f93ce5aa0ac6d201b8f37697f418ddc80548216831790557fd5b919ee98bf671a286d76fb974776031948c06c028e2b68350aa10f39644e9e80548216831790557f5c02e378c7e12e45f2172a90ebe0d96018481ff16fe9e48432619c595922030080548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015612d70575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff8211612f2d578190612b5c845461396f565b601f8111613009575b50600090601f8311600114612f6757600092612f5c575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111612f2d57612be77f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a55461396f565b601f8111612ea9575b506000601f8211600114612dad5781929394600092612da2575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015612d70575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b013590508480612c0a565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b878110612e91575083600195969710612e59575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a555612c5c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055848080612e2c565b90926020600181928686013581550194019101612e18565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c81019160208410612f23575b601f0160051c01905b818110612f175750612bf0565b60008155600101612f0a565b9091508190612f01565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b013590508780612b7c565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110612ff15750908460019594939210612fb9575b505050811b019055612bae565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080612fac565b91936020600181928787013581550195019201612f96565b909150836000526020600020601f840160051c81019160208510613052575b90601f859493920160051c01905b8181106130435750612b65565b60008155849350600101613036565b9091508190613028565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38680612941565b346103135760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576130e8613463565b60243567ffffffffffffffff81116103135761310890369060040161350f565b909160443567ffffffffffffffff81116103135761312a90369060040161350f565b93909160643567ffffffffffffffff8111610313576131be936131546131c6923690600401613540565b9590916131b6613162613da5565b9661318d887fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613a84565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86129936916136fa565b9836916136fa565b943691613780565b9173ffffffffffffffffffffffffffffffffffffffff82169485156132e957865190855182036103185760005b8281106132bf5750505073ffffffffffffffffffffffffffffffffffffffff1690846000837f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb60405160408152806132606132528d60408401906135de565b82810360208401528b6135de565b0390a43b61326a57005b6120f09160209160405193849283927fbc197c8100000000000000000000000000000000000000000000000000000000845260048401526000602484015260a060448401526120c061209060a485018b6135de565b806132e36132cf6001938c613b46565b516132da838b613b46565b51908886613eb6565b016131f3565b7f021149bd0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135761116161114d7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a46139c2565b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576004357fffffffff000000000000000000000000000000000000000000000000000000008116810361031357611bdb6020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6138e5565b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357602061345b613431613463565b602435907f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861261386c565b604051908152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361031357565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361031357565b60005b8381106134bc5750506000910152565b81810151838201526020016134ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093613508815180928187528780880191016134a9565b0116010190565b9181601f840112156103135782359167ffffffffffffffff8311610313576020808501948460051b01011161031357565b9181601f840112156103135782359167ffffffffffffffff8311610313576020838186019501011161031357565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103135760043567ffffffffffffffff811161031357816135b79160040161350f565b929092916024359067ffffffffffffffff8211610313576135da9160040161350f565b9091565b906020808351928381520192019060005b8181106135fc5750505090565b82518452602093840193909201916001016135ef565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103135760043567ffffffffffffffff8111610313578161365b9160040161350f565b9290929160243567ffffffffffffffff8111610313578161367e9160040161350f565b929092916044359067ffffffffffffffff8211610313576135da9160040161350f565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612f2d57604052565b67ffffffffffffffff8111612f2d5760051b60200190565b929190613706816136e2565b9361371460405195866136a1565b602085838152019160051b810192831161031357905b82821061373657505050565b813581526020918201910161372a565b67ffffffffffffffff8111612f2d57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261378c82613746565b9161379a60405193846136a1565b829481845281830111610313578281602093846000960137010152565b90601f836040947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093602086528160208701528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156138555773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b91908110156119575760051b0190565b909173ffffffffffffffffffffffffffffffffffffffff8316156138bb5760005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205490565b7fca2434a50000000000000000000000000000000000000000000000000000000060005260046000fd5b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114613855577f01ffc9a70000000000000000000000000000000000000000000000000000000081146139685760005260205260ff6040600020541690565b5050600190565b90600182811c921680156139b8575b602083101461398957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161397e565b90604051918260008254926139d68461396f565b8084529360018116908115613a4457506001146139fd575b506139fb925003836136a1565b565b90506000929192526020600020906000915b818310613a285750509060206139fb92820101386139ee565b6020919350806001915483858901015201910190918492613a0f565b602093506139fb9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b820101386139ee565b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff6040600020541615613ade5750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b80518210156119575760209160051b010190565b81810292918115918404141715613b6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83116103135760209260051b809284830137010190565b9290613bf290613c009593604086526040860191613b9c565b926020818503910152613b9c565b90565b3573ffffffffffffffffffffffffffffffffffffffff811681036103135790565b94919092939473ffffffffffffffffffffffffffffffffffffffff82169384156132e957613c6987878573ffffffffffffffffffffffffffffffffffffffff95613eb6565b1690836000837fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518a81528b6020820152a43b613cab575b5050505050565b613d069160209160405193849283927ff23a6e6100000000000000000000000000000000000000000000000000000000845260048401526000602484015287604484015288606484015260a0608484015260a48301906134cc565b03816000865af1908115610705577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff0000000000000000000000000000000000000000000000000000000091600091613d6e575b5016036106a3578080613ca4565b613d87915060203d6020116106fe576106f081836136a1565b38613d60565b90816020910312610313575180151581036103135790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015613ea7573233148015613eac575b613ea7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115613e2d575b50613c0057503390565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa90811561070557600091613e88575b5038613e23565b613ea1915060203d602011610e9f57610e9181836136a1565b38613e81565b503390565b5060183610613dec565b909183613ec4575b50505050565b8060005281602052604060002073ffffffffffffffffffffffffffffffffffffffff8416600052602052604060002054938085019480861115613f3a57505060005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205538808080613ebe565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481019390935260448301526064820152608490fd5b9081602091031261031357517fffffffff00000000000000000000000000000000000000000000000000000000811681036103135790565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315613ff6575b50505090565b600192935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff60406000205416388080613ff0565b9091836140585750505050565b8060005281602052604060002073ffffffffffffffffffffffffffffffffffffffff84166000526020526040600020549380850394808610156140ce57505060005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205538808080613ebe565b6040517f03dee4c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481019390935260448301526064820152608490fd5b5473ffffffffffffffffffffffffffffffffffffffff169081151580614208575b614150575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa908115610705576000916141e9575b50156141bc5750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b614202915060203d602011610e9f57610e9181836136a1565b386141b3565b50813b1515614148565b91929084614221575050505050565b8160005282602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260406000205490858203918083101561437d575073ffffffffffffffffffffffffffffffffffffffff851673ffffffffffffffffffffffffffffffffffffffff821603614299575b50613ca4565b8260005283602052604060002073ffffffffffffffffffffffffffffffffffffffff861660005260205260406000205495808701968088111561431f57505060009283526020938452604080842073ffffffffffffffffffffffffffffffffffffffff928316855280865281852093909355941682529091522055388080808080614293565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201526024810186905260448101919091526064810191909152608490fd5b6040517f03dee4c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260248201849052604482015260648101869052608490fdfea2646970667358221220b62648b58b58b178084f6c1dd0a5dceb7d0a387f65797444241c1e91e52dfd4064736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c8062fdd58e146133f557806301ffc9a71461336e57806306fdde03146133135780630d6a5bbb146130b15780630e07f854146127f75780630e89341c146126a0578063114ba8ee146125b9578063124d91e51461249e578063162094c4146123d75780632a55205a146122e45780632b4c9f16146122755780632eb2c2d614611e4f5780632f2ff15d14611cc35780634e1273f414611be5578063572b6c0514611b9a5780635cfa929714611ad057806361ba27da146119b45780636706467b1461184c57806373c8a9581461169c578063805349341461150a5780638bb9c5bf1461139b5780638da5cb5b1461132a5780638dc251e3146111fd57806391d148541461116557806395d89b41146110f2578063a0c76f6214611081578063a22cb46514610f21578063b0ccc31e14610eb0578063c3666c3614610c73578063d539139314610c1a578063d547741f14610a91578063e1a8bf2c14610a55578063e8ab9ccc14610849578063e985e9c514610795578063f242432a14610463578063f2fde38b1461036f5763f7ba94bd146101b257600080fd5b34610313576101c03661356e565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610201613da5565b925416911690810361034257508181036103185760005b81811061022157005b61022c81838761385c565b3573ffffffffffffffffffffffffffffffffffffffff81168091036103135761025682858761385c565b35908147106102e157600080809381935af13d156102d9573d9061027982613746565b9161028760405193846136a1565b82523d6000602084013e5b156102a05750600101610218565b8051156102af57602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b606090610292565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576103a6613463565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc906103d0613da5565b9073ffffffffffffffffffffffffffffffffffffffff808454169216828103610342575073ffffffffffffffffffffffffffffffffffffffff169182820361041457005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346103135760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135761049a613463565b6104a2613486565b604435906064359260843567ffffffffffffffff8111610313576104ca903690600401613540565b926104d3613da5565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff821603610785575b505073ffffffffffffffffffffffffffffffffffffffff8216947f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612861561075b57610576828783613fcb565b156107115773ffffffffffffffffffffffffffffffffffffffff9161059f8a8a878a8796614212565b169416918583867fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518c81528d6020820152a43b6105dc57005b6020926105ea913691613780565b9261064060405194859384937ff23a6e610000000000000000000000000000000000000000000000000000000085526004850152602484015287604484015288606484015260a0608484015260a48301906134cc565b03816000865af1908115610705577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000916000916106d6575b5016036106a357005b7f40f39d380000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b6106f8915060203d6020116106fe575b6106f081836136a1565b810190613f93565b8661069a565b503d6106e6565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff8681847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b7fb5e890150000000000000000000000000000000000000000000000000000000060005260046000fd5b61078e91614127565b878561052a565b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576107cc613463565b73ffffffffffffffffffffffffffffffffffffffff6107e9613486565b91166000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103135760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135760043567ffffffffffffffff81116103135761089890369060040161350f565b60243567ffffffffffffffff8111610313576108b890369060040161350f565b929060443567ffffffffffffffff8111610313576108da90369060040161350f565b93909160643567ffffffffffffffff8111610313576108fd903690600401613540565b939091610908613da5565b97610933897fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613a84565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86129461095e816136e2565b9761096c604051998a6136a1565b818952602089019160051b81019036821161031357915b818310610a2857505050916109a16109a9926109b1959436916136fa565b9736916136fa565b933691613780565b9183519480518614801590610a1d575b6103185760005b8681106109d157005b80610a178673ffffffffffffffffffffffffffffffffffffffff6109f76001958b613b46565b5116610a038487613b46565b51610a0e8589613b46565b51918d8a613c24565b016109c8565b5081518614156109c1565b823573ffffffffffffffffffffffffffffffffffffffff8116810361031357815260209283019201610983565b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576020604051620186a08152f35b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357600435610acb613486565b610ad3613da5565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361034257507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416610b8557005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b3461031357610c8136613612565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610cc6613da5565b92541691169081036103425750808214801590610ea6575b6103185760005b828110610cee57005b73ffffffffffffffffffffffffffffffffffffffff610d16610d1183858a61385c565b613c03565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa90811561070557600091610e78575b5015610e4b575073ffffffffffffffffffffffffffffffffffffffff610da5610d1183858a61385c565b1690610db5610d1182868961385c565b91610dc182878b61385c565b3592813b1561031357606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af191821561070557600192610e3a575b5001610ce5565b6000610e45916136a1565b88610e33565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b610e99915060203d8111610e9f575b610e9181836136a1565b810190613d8d565b89610d7b565b503d610e87565b5082821415610cde565b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357610f58613463565b602435908115159182810361031357611052575b73ffffffffffffffffffffffffffffffffffffffff80610f8a613da5565b169116918183146110245760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86138252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507ffb0fdf610000000000000000000000000000000000000000000000000000000060005260045260246000fd5b61107c817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30614127565b610f6c565b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135761116161114d7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56139c2565b6040519182916020835260208301906134cc565b0390f35b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135761119c613486565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357611234613463565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611273613da5565b925416911690810361034257507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff8116156113005773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226004356113f6613da5565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416156114c25760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610c15565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b346103135760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357611541613463565b60243567ffffffffffffffff81116103135761156190369060040161350f565b9060443567ffffffffffffffff81116103135761158290369060040161350f565b907f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612936115ad613da5565b94838203610318576115c0868883613fcb565b156116525760005b828110611626575050946116217f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb9373ffffffffffffffffffffffffffffffffffffffff93600098856040519687961699169785613bd9565b0390a4005b8061164c611637600193868a61385c565b3561164383898961385c565b35908b8661404b565b016115c8565b73ffffffffffffffffffffffffffffffffffffffff8781887f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b34610313576116aa36613612565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806116ed613da5565b92541691169081036103425750808414801590611842575b6103185760005b84811061171557005b61172081838861385c565b3573ffffffffffffffffffffffffffffffffffffffff811690818103610313576000602091611753610d11868b8e61385c565b826117bd6117e9611765898d8d61385c565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826136a1565b51925af115610705576000513d6118395750803b155b61180c575060010161170c565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600114156117ff565b5082841415611705565b346103135761185a3661356e565b8083949293036103185773ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416330361198657916000907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301915b8581106118d657005b84811015611957578060051b820135838112156103135782019081359167ffffffffffffffff8311610313576020018236038113610313577f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b60019361193d848b8a61385c565b359261194e604051928392836137b7565b0390a2016118cd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f22060671000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611a25613da5565b925416911690810361034257507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a08111611aa357815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103135760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357611b07613463565b6064359067ffffffffffffffff821161031357611b2b611b98923690600401613540565b611b8a611b36613da5565b92611b61847fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613a84565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612923691613780565b926044359260243592613c24565b005b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576020611bdb611bd6613463565b6137fd565b6040519015158152f35b3461031357611bf33661356e565b9192917f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612919080850361031857611c29856136e2565b94611c3760405196876136a1565b8086527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611c64826136e2565b0136602088013760005b818110611c8b57604051602080825281906111619082018a6135de565b80611cb2611c9f610d11600194868b61385c565b611caa83878961385c565b35908861386c565b611cbc828a613b46565b5201611c6e565b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357600435611cfd613486565b611d05613da5565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361034257507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff6040600020541615611db857005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610c15565b346103135760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357611e86613463565b611e8e613486565b60443567ffffffffffffffff811161031357611eae90369060040161350f565b929060643567ffffffffffffffff811161031357611ed090369060040161350f565b9360843567ffffffffffffffff811161031357611ef1903690600401613540565b939091611efc613da5565b957f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308773ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff821603612265575b505073ffffffffffffffffffffffffffffffffffffffff8216967f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612881561075b57898b0361031857611fa6828483613fcb565b1561221b5760005b8b81106121ec575050928992888a73ffffffffffffffffffffffffffffffffffffffff9897947f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8a61201199169a8b92169889936040519182918d8c8b85613bd9565b0390a43b61201b57005b602094612030612038926120409536916136fa565b9936916136fa565b953691613780565b926120f060405194859384937fbc197c810000000000000000000000000000000000000000000000000000000085526004850152602484015260a060448401526120c061209060a485018b6135de565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc858203016064860152886135de565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160848501526134cc565b03816000875af1908115610705577fbc197c8100000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000916000916121cd575b50160361215357005b6121c9906121996040519485947fc287817e00000000000000000000000000000000000000000000000000000000865260048601526060602486015260648501906135de565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160448501526135de565b0390fd5b6121e6915060203d6020116106fe576106f081836136a1565b8661214a565b806122158c61220b8f94612203816001978d61385c565b35928d61385c565b3590888887614212565b01611fae565b73ffffffffffffffffffffffffffffffffffffffff8381847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b61226e91614127565b8987611f53565b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c90801580156123cf575b1561239957505061116160005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b61116191620186a08210156123bc576123b690620186a092613b5a565b04612369565b620186a06123ca9204613b5a565b612369565b50811561235c565b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135760243567ffffffffffffffff811161031357612426903690600401613540565b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a654163303611986576124997f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b9160405191829160043595836137b7565b0390a2005b346103135760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576124d5613463565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612602435604435612504613da5565b92612510848683613fcb565b1561256f5773ffffffffffffffffffffffffffffffffffffffff80868461255e7fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62968860009b60409861404b565b8451968752602087015216941692a4005b73ffffffffffffffffffffffffffffffffffffffff8581867f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576125f0613463565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061262f613da5565b9254169116908103610342575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313577f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6546040517ff724dad700000000000000000000000000000000000000000000000000000000815230600480830191909152356024820152906000908290604490829073ffffffffffffffffffffffffffffffffffffffff165afa9081156107055760009161276f575b60405160208082528190611161908201856134cc565b3d8083833e61277e81836136a1565b8101906020818303126127ef5780519067ffffffffffffffff82116127f3570181601f820112156127ef578051926127b584613746565b926127c360405194856136a1565b848452602085840101116127ec5750611161926127e691602080850191016134a9565b90612759565b80fd5b8280fd5b8380fd5b346103135760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135760043567ffffffffffffffff811161031357612846903690600401613540565b60243567ffffffffffffffff811161031357612866903690600401613540565b6044939193359173ffffffffffffffffffffffffffffffffffffffff83168303610313576064359373ffffffffffffffffffffffffffffffffffffffff85168503610313577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc6128d4613da5565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015612d70575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff16908161305c575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f55f2baa086bcadb68563d14bf0ae4964705cc6bc8fd476a834dc8cb4e83cc92a80548216831790557f798ccc21e731e7c6df0f17af649aebfe86cf40852d893cd6be9ac4b4f1a38c4a80548216831790557f9e2577fef401b922351ba64c2dd1b1973f93ce5aa0ac6d201b8f37697f418ddc80548216831790557fd5b919ee98bf671a286d76fb974776031948c06c028e2b68350aa10f39644e9e80548216831790557f5c02e378c7e12e45f2172a90ebe0d96018481ff16fe9e48432619c595922030080548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015612d70575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff8211612f2d578190612b5c845461396f565b601f8111613009575b50600090601f8311600114612f6757600092612f5c575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111612f2d57612be77f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a55461396f565b601f8111612ea9575b506000601f8211600114612dad5781929394600092612da2575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015612d70575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b013590508480612c0a565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b878110612e91575083600195969710612e59575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a555612c5c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055848080612e2c565b90926020600181928686013581550194019101612e18565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c81019160208410612f23575b601f0160051c01905b818110612f175750612bf0565b60008155600101612f0a565b9091508190612f01565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b013590508780612b7c565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110612ff15750908460019594939210612fb9575b505050811b019055612bae565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080612fac565b91936020600181928787013581550195019201612f96565b909150836000526020600020601f840160051c81019160208510613052575b90601f859493920160051c01905b8181106130435750612b65565b60008155849350600101613036565b9091508190613028565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38680612941565b346103135760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576130e8613463565b60243567ffffffffffffffff81116103135761310890369060040161350f565b909160443567ffffffffffffffff81116103135761312a90369060040161350f565b93909160643567ffffffffffffffff8111610313576131be936131546131c6923690600401613540565b9590916131b6613162613da5565b9661318d887fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613a84565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86129936916136fa565b9836916136fa565b943691613780565b9173ffffffffffffffffffffffffffffffffffffffff82169485156132e957865190855182036103185760005b8281106132bf5750505073ffffffffffffffffffffffffffffffffffffffff1690846000837f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb60405160408152806132606132528d60408401906135de565b82810360208401528b6135de565b0390a43b61326a57005b6120f09160209160405193849283927fbc197c8100000000000000000000000000000000000000000000000000000000845260048401526000602484015260a060448401526120c061209060a485018b6135de565b806132e36132cf6001938c613b46565b516132da838b613b46565b51908886613eb6565b016131f3565b7f021149bd0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103135760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103135761116161114d7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a46139c2565b346103135760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610313576004357fffffffff000000000000000000000000000000000000000000000000000000008116810361031357611bdb6020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6138e5565b346103135760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031357602061345b613431613463565b602435907f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861261386c565b604051908152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361031357565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361031357565b60005b8381106134bc5750506000910152565b81810151838201526020016134ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093613508815180928187528780880191016134a9565b0116010190565b9181601f840112156103135782359167ffffffffffffffff8311610313576020808501948460051b01011161031357565b9181601f840112156103135782359167ffffffffffffffff8311610313576020838186019501011161031357565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103135760043567ffffffffffffffff811161031357816135b79160040161350f565b929092916024359067ffffffffffffffff8211610313576135da9160040161350f565b9091565b906020808351928381520192019060005b8181106135fc5750505090565b82518452602093840193909201916001016135ef565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103135760043567ffffffffffffffff8111610313578161365b9160040161350f565b9290929160243567ffffffffffffffff8111610313578161367e9160040161350f565b929092916044359067ffffffffffffffff8211610313576135da9160040161350f565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612f2d57604052565b67ffffffffffffffff8111612f2d5760051b60200190565b929190613706816136e2565b9361371460405195866136a1565b602085838152019160051b810192831161031357905b82821061373657505050565b813581526020918201910161372a565b67ffffffffffffffff8111612f2d57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261378c82613746565b9161379a60405193846136a1565b829481845281830111610313578281602093846000960137010152565b90601f836040947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093602086528160208701528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156138555773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b91908110156119575760051b0190565b909173ffffffffffffffffffffffffffffffffffffffff8316156138bb5760005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205490565b7fca2434a50000000000000000000000000000000000000000000000000000000060005260046000fd5b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114613855577f01ffc9a70000000000000000000000000000000000000000000000000000000081146139685760005260205260ff6040600020541690565b5050600190565b90600182811c921680156139b8575b602083101461398957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161397e565b90604051918260008254926139d68461396f565b8084529360018116908115613a4457506001146139fd575b506139fb925003836136a1565b565b90506000929192526020600020906000915b818310613a285750509060206139fb92820101386139ee565b6020919350806001915483858901015201910190918492613a0f565b602093506139fb9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b820101386139ee565b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff6040600020541615613ade5750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b80518210156119575760209160051b010190565b81810292918115918404141715613b6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83116103135760209260051b809284830137010190565b9290613bf290613c009593604086526040860191613b9c565b926020818503910152613b9c565b90565b3573ffffffffffffffffffffffffffffffffffffffff811681036103135790565b94919092939473ffffffffffffffffffffffffffffffffffffffff82169384156132e957613c6987878573ffffffffffffffffffffffffffffffffffffffff95613eb6565b1690836000837fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518a81528b6020820152a43b613cab575b5050505050565b613d069160209160405193849283927ff23a6e6100000000000000000000000000000000000000000000000000000000845260048401526000602484015287604484015288606484015260a0608484015260a48301906134cc565b03816000865af1908115610705577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff0000000000000000000000000000000000000000000000000000000091600091613d6e575b5016036106a3578080613ca4565b613d87915060203d6020116106fe576106f081836136a1565b38613d60565b90816020910312610313575180151581036103135790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015613ea7573233148015613eac575b613ea7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115613e2d575b50613c0057503390565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa90811561070557600091613e88575b5038613e23565b613ea1915060203d602011610e9f57610e9181836136a1565b38613e81565b503390565b5060183610613dec565b909183613ec4575b50505050565b8060005281602052604060002073ffffffffffffffffffffffffffffffffffffffff8416600052602052604060002054938085019480861115613f3a57505060005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205538808080613ebe565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481019390935260448301526064820152608490fd5b9081602091031261031357517fffffffff00000000000000000000000000000000000000000000000000000000811681036103135790565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315613ff6575b50505090565b600192935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff60406000205416388080613ff0565b9091836140585750505050565b8060005281602052604060002073ffffffffffffffffffffffffffffffffffffffff84166000526020526040600020549380850394808610156140ce57505060005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205538808080613ebe565b6040517f03dee4c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481019390935260448301526064820152608490fd5b5473ffffffffffffffffffffffffffffffffffffffff169081151580614208575b614150575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa908115610705576000916141e9575b50156141bc5750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b614202915060203d602011610e9f57610e9181836136a1565b386141b3565b50813b1515614148565b91929084614221575050505050565b8160005282602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260406000205490858203918083101561437d575073ffffffffffffffffffffffffffffffffffffffff851673ffffffffffffffffffffffffffffffffffffffff821603614299575b50613ca4565b8260005283602052604060002073ffffffffffffffffffffffffffffffffffffffff861660005260205260406000205495808701968088111561431f57505060009283526020938452604080842073ffffffffffffffffffffffffffffffffffffffff928316855280865281852093909355941682529091522055388080808080614293565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201526024810186905260448101919091526064810191909152608490fd5b6040517f03dee4c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260248201849052604482015260648101869052608490fdfea2646970667358221220b62648b58b58b178084f6c1dd0a5dceb7d0a387f65797444241c1e91e52dfd4064736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
