{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC721FullBurnProxied",
  "sourceName": "contracts/token/ERC721/preset/proxied/ERC721FullBurnProxied.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "ERC2981IncorrectRoyaltyPercentage",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC2981IncorrectRoyaltyReceiver",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721BalanceOfAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721ExistingToken",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721MintToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonApprovedForApproval",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonApprovedForTransfer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonExistingToken",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonOwnedToken",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721SafeTransferRejected",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "ERC721SelfApproval",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "ERC721SelfApprovalForAll",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721TransferToAddressZero",
      "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": "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": "approved",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "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": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "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": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "batchBurnFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "batchMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "batchTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "burnFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "deliver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "forwarderRegistry",
      "outputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getApproved",
      "outputs": [
        {
          "internalType": "address",
          "name": "approved",
          "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": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ownerOf",
      "outputs": [
        {
          "internalType": "address",
          "name": "tokenOwner",
          "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": "tokenId",
          "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": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "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": "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": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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"
    }
  ],
  "bytecode": "0x60a034607457601f6146ac38819003918201601f19168301916001600160401b03831184841017607957808492602094604052833981010312607457516001600160a01b038116810360745760805260405161461c908161009082396080518181816127ac01528181613aab01526143180152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461368157806306fdde0314613626578063081812fc146135c9578063095ea7b3146133355780630e07f85414612a52578063114ba8ee1461296b57806323b872dd146128c35780632a55205a146127d05780632b4c9f16146127615780632f2ff15d146125d557806340c10f191461254557806342842e0e146124755780634684d7e9146122dc578063572b6c051461229157806361ba27da146121755780636352211e146120fa57806370a082311461203057806373c8a95814611e8057806379cc679014611be25780638832e6e3146119945780638bb9c5bf146118255780638da5cb5b146117b45780638dc251e31461168757806391d14854146115ef57806395d89b41146115805780639da5e83214611456578063a0c76f62146113e5578063a22cb46514611285578063b0ccc31e14611214578063b88d4fde146110f2578063c3666c3614610eb5578063c87b56dd14610d02578063d539139314610ca9578063d547741f14610b20578063e1a8bf2c14610ae4578063e985e9c514610a30578063f24729651461080b578063f2fde38b14610717578063f3993d11146103915763f7ba94bd146101d457600080fd5b34610335576101e236613983565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610223614301565b9254169116908103610364575081810361033a5760005b81811061024357005b61024e81838761410b565b3573ffffffffffffffffffffffffffffffffffffffff81168091036103355761027882858761410b565b359081471061030357600080809381935af13d156102fb573d9061029b82613af3565b916102a960405193846139ef565b82523d6000602084013e5b156102c2575060010161023a565b8051156102d157602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b6060906102b4565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576103c861376e565b6103d0613791565b9060443567ffffffffffffffff8111610335576103f1903690600401613854565b926103fa614301565b907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308273ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff821603610707575b505073ffffffffffffffffffffffffffffffffffffffff7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c091169384156106dd5761049f8382849694614415565b9373ffffffffffffffffffffffffffffffffffffffff600095159216945b878110610522578787878181141580610519575b6104d757005b60009081527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040808220805485900390559181522080549091019055005b508215156104d1565b61052d81898661410b565b35806000528260205260406000205473ffffffffffffffffffffffffffffffffffffffff811680156106af57880361067d57846105a6575b509081600192600052836020528860406000205588887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4016104bd565b740100000000000000000000000000000000000000001615801561061a575b6105cf5789610565565b8673ffffffffffffffffffffffffffffffffffffffff877fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff871614156105c5565b50867f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b827fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f86c870670000000000000000000000000000000000000000000000000000000060005260046000fd5b61071091614216565b8582610451565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761074e61376e565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc90610778614301565b9073ffffffffffffffffffffffffffffffffffffffff808454169216828103610364575073ffffffffffffffffffffffffffffffffffffffff16918282036107bc57005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346103355761081936613885565b917fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c091610844614301565b92610850848483614415565b9373ffffffffffffffffffffffffffffffffffffffff600095159416945b8681106108b55786868161087e57005b6000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040600020908154039055600080f35b6108c081888661410b565b35806000528360205260406000205473ffffffffffffffffffffffffffffffffffffffff811680156106af57880361067d5786610959575b509081600192600052846020527fdead0000000000000000000000000000000000000000000000000000000000006040600020556000887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a40161086e565b74010000000000000000000000000000000000000000161580156109cd575b61098257886108f8565b8673ffffffffffffffffffffffffffffffffffffffff847fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff84161415610978565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610a6761376e565b73ffffffffffffffffffffffffffffffffffffffff610a84613791565b91166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576020604051620186a08152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557600435610b5a613791565b610b62614301565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036457507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416610c1457005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610df46000600435610d63817fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06140b0565b5073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541660405180809581947ff724dad700000000000000000000000000000000000000000000000000000000835230600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03915afa908115610ea957600091610e21575b60405160208082528190610e1d9082018561372b565b0390f35b3d8083833e610e3081836139ef565b810190602081830312610ea15780519067ffffffffffffffff8211610ea5570181601f82011215610ea157805192610e6784613af3565b92610e7560405194856139ef565b84845260208584010111610e9e5750610e1d92610e989160208085019101613708565b90610e07565b80fd5b8280fd5b8380fd5b6040513d6000823e3d90fd5b3461033557610ec3366138f4565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610f08614301565b925416911690810361036457508082148015906110e8575b61033a5760005b828110610f3057005b73ffffffffffffffffffffffffffffffffffffffff610f58610f5383858a61410b565b61411b565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa908115610ea9576000916110ba575b501561108d575073ffffffffffffffffffffffffffffffffffffffff610fe7610f5383858a61410b565b1690610ff7610f5382868961410b565b9161100382878b61410b565b3592813b1561033557606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af1918215610ea95760019261107c575b5001610f27565b6000611087916139ef565b88611075565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6110db915060203d81116110e1575b6110d381836139ef565b81019061413c565b89610fbd565b503d6110c9565b5082821415610f20565b346103355760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761112961376e565b611131613791565b60443560643567ffffffffffffffff8111610335576111549036906004016137b4565b92909361115f614301565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff821603611204575b50506111e5848484887fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613cb0565b823b6111ed57005b611202956111fc913691613b2d565b93614495565b005b61120d91614216565b86856111b6565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576112bc61376e565b6024359081151591828103610335576113b6575b73ffffffffffffffffffffffffffffffffffffffff806112ee614301565b169116918183146113885760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c38252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507fe4215c6a0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6113e0817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30614216565b6112d0565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346103355761146436613983565b6114967fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611490614301565b90613ee9565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0926114c181613a30565b946114cf60405196876139ef565b818652602086019160051b81019036821161033557915b81831061155357505050906114fc913691613a48565b918051918351830361033a5760005b83811061151457005b8061154d73ffffffffffffffffffffffffffffffffffffffff6115396001948761406d565b5116611545838961406d565b519085613fab565b0161150b565b823573ffffffffffffffffffffffffffffffffffffffff81168103610335578152602092830192016114e6565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e1d6115db7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5614154565b60405191829160208352602083019061372b565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611626613791565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576116be61376e565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806116fd614301565b925416911690810361036457507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff81161561178a5773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22600435611880614301565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff604060002054161561194c5760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610ca4565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576119cb61376e565b6024359060443567ffffffffffffffff8111610335576119ef9036906004016137b4565b91611a1c7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611490614301565b611a5c8482611a567fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c095611a4e614301565b973691613b2d565b94613fab565b803b611a6457005b73ffffffffffffffffffffffffffffffffffffffff806020921693611ad160405194859384937f150b7a020000000000000000000000000000000000000000000000000000000085521660048401526000602484015287604484015260806064840152608483019061372b565b03816000865af1908115610ea957600091611b63575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a0200000000000000000000000000000000000000000000000000000000911603611b3357005b7fc215a7a10000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b6020813d602011611bda575b81611b7c602093836139ef565b81010312611bd65751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610e9e57507fffffffff00000000000000000000000000000000000000000000000000000000611ae7565b5080fd5b3d9150611b6f565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611c1961376e565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0611c46614301565b836000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff8116938415611e525773ffffffffffffffffffffffffffffffffffffffff8116809503611e205782611c9b9185614415565b15611d49575b84600085858383526020527fdead00000000000000000000000000000000000000000000000000000000000060408320558082527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c1602052604082207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4005b7401000000000000000000000000000000000000000016158015611dbd575b611d725780611ca1565b73ffffffffffffffffffffffffffffffffffffffff91507fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff82161415611d68565b85857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b857fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461033557611e8e366138f4565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611ed1614301565b92541691169081036103645750808414801590612026575b61033a5760005b848110611ef957005b611f0481838861410b565b3573ffffffffffffffffffffffffffffffffffffffff811690818103610335576000602091611f37610f53868b8e61410b565b82611fa1611fcd611f49898d8d61410b565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826139ef565b51925af115610ea9576000513d61201d5750803b155b611ff05750600101611ef0565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611fe3565b5082841415611ee9565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761206761376e565b73ffffffffffffffffffffffffffffffffffffffff8116156120d05773ffffffffffffffffffffffffffffffffffffffff166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526020604060002054604051908152f35b7faefbce4e0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206121576004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06140b0565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806121e6614301565b925416911690810361036457507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a0811161226457815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206122d26122cd61376e565b613a94565b6040519015158152f35b346103355761235b73ffffffffffffffffffffffffffffffffffffffff61230236613885565b929193906123327fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611490614301565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0933691613a48565b921690811561244b5782519260005b8481106123ab575050506000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040600020908154019055600080f35b6123b5818361406d565b51806000528360205273ffffffffffffffffffffffffffffffffffffffff6040600020541661241e57908160019260005284602052856040600020558560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a40161236a565b7f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f7851b9cd0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461033557612483366137e2565b61248b614301565b917f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308373ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff821603612535575b5050612511828286867fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613cb0565b803b61251957005b611202936040519361252c6020866139ef565b60008552614495565b61253e91614216565b84836124e2565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761120261257f61376e565b6125ab7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611490614301565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613fab565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760043561260f613791565b612617614301565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036457507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416156126ca57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610ca4565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c90801580156128bb575b15612885575050610e1d60005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b610e1d91620186a08210156128a8576128a290620186a092613ea7565b04612855565b620186a06128b69204613ea7565b612855565b508115612848565b34610335576112026128d4366137e2565b916128dd614301565b7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308173ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff82160361295b575b50507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613cb0565b61296491614216565b8581612933565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576129a261376e565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806129e1614301565b9254169116908103610364575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346103355760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760043567ffffffffffffffff811161033557612aa19036906004016137b4565b60243567ffffffffffffffff811161033557612ac19036906004016137b4565b6044939193359173ffffffffffffffffffffffffffffffffffffffff83168303610335576064359373ffffffffffffffffffffffffffffffffffffffff85168503610335577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc612b2f614301565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015612ff4575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff1690816132e0575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f8ed2355fc3f859d445b81332ba1875c675be71b9fe1bab0a25be6436696b0ec780548216831790557f98ea984a1dd4b0fbb2764a2a70a93d7e6137ea3c70db196cc96460f50c0d1a1f80548216831790557f70a1033a668c0b93d699f00f1cf02b517801b7285ead3ea5fa8d9b43f89ed57180548216831790557f4f521d2bc326c534847f496e961505200b8e61c57a75e48fd6b97dc560e2c5a480548216831790557f0845b122e17f0ee9a0d1d2feeec009013976e8c85c80079e88858099492b187280548216831790557f3f01c033909a538299eeb8bb8b7a2d8e5ca8f4a58a90fe96d157768ed92ef21780548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015612ff4575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff82116131b1578190612de08454613c5d565b601f811161328d575b50600090601f83116001146131eb576000926131e0575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff81116131b157612e6b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554613c5d565b601f811161312d575b506000601f82116001146130315781929394600092613026575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015612ff4575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b013590508480612e8e565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b8781106131155750836001959697106130dd575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a555612ee0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558480806130b0565b9092602060018192868601358155019401910161309c565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c810191602084106131a7575b601f0160051c01905b81811061319b5750612e74565b6000815560010161318e565b9091508190613185565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b013590508780612e00565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110613275575090846001959493921061323d575b505050811b019055612e32565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080613230565b9193602060018192878701358155019501920161321a565b909150836000526020600020601f840160051c810191602085106132d6575b90601f859493920160051c01905b8181106132c75750612de9565b600081558493506001016132ba565b90915081906132ac565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38680612b9c565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761336c61376e565b6024359073ffffffffffffffffffffffffffffffffffffffff8116908115908115613599575b507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06133bc614301565b9184600052816020526040600020549073ffffffffffffffffffffffffffffffffffffffff821693841561356b5784861461353d576133fc818686614415565b156134f157501561346057740100000000000000000000000000000000000000001661344c575b505b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b836000526020528060406000205583613423565b907401000000000000000000000000000000000000000082178092036134dd575b5050826000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c26020526040600020827fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055613425565b846000526020526040600020558380613481565b8473ffffffffffffffffffffffffffffffffffffffff88927fc7563a18000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b847fb7fdc0100000000000000000000000000000000000000000000000000000000060005260045260246000fd5b867fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6135c3907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30614216565b83613392565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206121576004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613bee565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e1d6115db7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4614154565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576004357fffffffff0000000000000000000000000000000000000000000000000000000081168103610335576122d26020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d613b64565b60005b83811061371b5750506000910152565b818101518382015260200161370b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361376781518092818752878088019101613708565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361033557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361033557565b9181601f840112156103355782359167ffffffffffffffff8311610335576020838186019501011161033557565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103355760043573ffffffffffffffffffffffffffffffffffffffff81168103610335579060243573ffffffffffffffffffffffffffffffffffffffff81168103610335579060443590565b9181601f840112156103355782359167ffffffffffffffff8311610335576020808501948460051b01011161033557565b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126103355760043573ffffffffffffffffffffffffffffffffffffffff8116810361033557916024359067ffffffffffffffff8211610335576138f091600401613854565b9091565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103355760043567ffffffffffffffff8111610335578161393d91600401613854565b9290929160243567ffffffffffffffff8111610335578161396091600401613854565b929092916044359067ffffffffffffffff8211610335576138f091600401613854565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103355760043567ffffffffffffffff811161033557816139cc91600401613854565b929092916024359067ffffffffffffffff8211610335576138f091600401613854565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176131b157604052565b67ffffffffffffffff81116131b15760051b60200190565b929190613a5481613a30565b93613a6260405195866139ef565b602085838152019160051b810192831161033557905b828210613a8457505050565b8135815260209182019101613a78565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016908115613aec5773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b67ffffffffffffffff81116131b157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192613b3982613af3565b91613b4760405193846139ef565b829481845281830111610335578281602093846000960137010152565b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114613aec577f01ffc9a7000000000000000000000000000000000000000000000000000000008114613be75760005260205260ff6040600020541690565b5050600190565b816000528060205260406000205473ffffffffffffffffffffffffffffffffffffffff8116156106af57740100000000000000000000000000000000000000001615613aec576002916000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020541690565b90600182811c92168015613ca6575b6020831014613c7757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691613c6c565b909273ffffffffffffffffffffffffffffffffffffffff169283156106dd57846000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff811693841561356b5773ffffffffffffffffffffffffffffffffffffffff8116809503613e755782613d249185614415565b15613dba575b5050836000528060205282604060002055828203613d6b575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b600101816000528060205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81540190558260005260205260406000206001815401905538613d43565b7401000000000000000000000000000000000000000016158015613e2f575b613de35780613d2a565b8273ffffffffffffffffffffffffffffffffffffffff86927fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50846000526002820160205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff82161415613dd9565b86857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b81810292918115918404141715613eba57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff6040600020541615613f435750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b9073ffffffffffffffffffffffffffffffffffffffff1690811561244b57826000528060205273ffffffffffffffffffffffffffffffffffffffff6040600020541661403f57600190836000528060205282604060002055826000520160205260406000206001815401905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4565b827f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b80518210156140815760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8160005260205273ffffffffffffffffffffffffffffffffffffffff604060002054169081156140de575090565b7fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b91908110156140815760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff811681036103355790565b90816020910312610335575180151581036103355790565b906040519182600082549261416884613c5d565b80845293600181169081156141d6575060011461418f575b5061418d925003836139ef565b565b90506000929192526020600020906000915b8183106141ba57505090602061418d9282010138614180565b60209193508060019154838589010152019101909184926141a1565b6020935061418d9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138614180565b5473ffffffffffffffffffffffffffffffffffffffff1690811515806142f7575b61423f575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa908115610ea9576000916142d8575b50156142ab5750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6142f1915060203d6020116110e1576110d381836139ef565b386142a2565b50813b1515614237565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016801561440657323314801561440b575b614406577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c9080331490811561438c575b5061438957503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa908115610ea9576000916143e7575b503861437f565b614400915060203d6020116110e1576110d381836139ef565b386143e0565b503390565b5060183610614348565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315614440575b50505090565b600392935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff6040600020541638808061443a565b73ffffffffffffffffffffffffffffffffffffffff90614507826020949597969716958360405196879586957f150b7a0200000000000000000000000000000000000000000000000000000000875216600486015216602484015287604484015260806064840152608483019061372b565b03816000865af1908115610ea95760009161456b575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a0200000000000000000000000000000000000000000000000000000000911603611b33575050565b6020813d6020116145de575b81614584602093836139ef565b81010312611bd65751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610e9e57507fffffffff0000000000000000000000000000000000000000000000000000000061451d565b3d915061457756fea2646970667358221220f7c4e8ce333c86cf42b0a886b7470883a5d68bce73c22a66f26b2fed1106793c64736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461368157806306fdde0314613626578063081812fc146135c9578063095ea7b3146133355780630e07f85414612a52578063114ba8ee1461296b57806323b872dd146128c35780632a55205a146127d05780632b4c9f16146127615780632f2ff15d146125d557806340c10f191461254557806342842e0e146124755780634684d7e9146122dc578063572b6c051461229157806361ba27da146121755780636352211e146120fa57806370a082311461203057806373c8a95814611e8057806379cc679014611be25780638832e6e3146119945780638bb9c5bf146118255780638da5cb5b146117b45780638dc251e31461168757806391d14854146115ef57806395d89b41146115805780639da5e83214611456578063a0c76f62146113e5578063a22cb46514611285578063b0ccc31e14611214578063b88d4fde146110f2578063c3666c3614610eb5578063c87b56dd14610d02578063d539139314610ca9578063d547741f14610b20578063e1a8bf2c14610ae4578063e985e9c514610a30578063f24729651461080b578063f2fde38b14610717578063f3993d11146103915763f7ba94bd146101d457600080fd5b34610335576101e236613983565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610223614301565b9254169116908103610364575081810361033a5760005b81811061024357005b61024e81838761410b565b3573ffffffffffffffffffffffffffffffffffffffff81168091036103355761027882858761410b565b359081471061030357600080809381935af13d156102fb573d9061029b82613af3565b916102a960405193846139ef565b82523d6000602084013e5b156102c2575060010161023a565b8051156102d157602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b6060906102b4565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576103c861376e565b6103d0613791565b9060443567ffffffffffffffff8111610335576103f1903690600401613854565b926103fa614301565b907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308273ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff821603610707575b505073ffffffffffffffffffffffffffffffffffffffff7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c091169384156106dd5761049f8382849694614415565b9373ffffffffffffffffffffffffffffffffffffffff600095159216945b878110610522578787878181141580610519575b6104d757005b60009081527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040808220805485900390559181522080549091019055005b508215156104d1565b61052d81898661410b565b35806000528260205260406000205473ffffffffffffffffffffffffffffffffffffffff811680156106af57880361067d57846105a6575b509081600192600052836020528860406000205588887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4016104bd565b740100000000000000000000000000000000000000001615801561061a575b6105cf5789610565565b8673ffffffffffffffffffffffffffffffffffffffff877fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff871614156105c5565b50867f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b827fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f86c870670000000000000000000000000000000000000000000000000000000060005260046000fd5b61071091614216565b8582610451565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761074e61376e565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc90610778614301565b9073ffffffffffffffffffffffffffffffffffffffff808454169216828103610364575073ffffffffffffffffffffffffffffffffffffffff16918282036107bc57005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346103355761081936613885565b917fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c091610844614301565b92610850848483614415565b9373ffffffffffffffffffffffffffffffffffffffff600095159416945b8681106108b55786868161087e57005b6000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040600020908154039055600080f35b6108c081888661410b565b35806000528360205260406000205473ffffffffffffffffffffffffffffffffffffffff811680156106af57880361067d5786610959575b509081600192600052846020527fdead0000000000000000000000000000000000000000000000000000000000006040600020556000887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a40161086e565b74010000000000000000000000000000000000000000161580156109cd575b61098257886108f8565b8673ffffffffffffffffffffffffffffffffffffffff847fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff84161415610978565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610a6761376e565b73ffffffffffffffffffffffffffffffffffffffff610a84613791565b91166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576020604051620186a08152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557600435610b5a613791565b610b62614301565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036457507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416610c1457005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610df46000600435610d63817fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06140b0565b5073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541660405180809581947ff724dad700000000000000000000000000000000000000000000000000000000835230600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03915afa908115610ea957600091610e21575b60405160208082528190610e1d9082018561372b565b0390f35b3d8083833e610e3081836139ef565b810190602081830312610ea15780519067ffffffffffffffff8211610ea5570181601f82011215610ea157805192610e6784613af3565b92610e7560405194856139ef565b84845260208584010111610e9e5750610e1d92610e989160208085019101613708565b90610e07565b80fd5b8280fd5b8380fd5b6040513d6000823e3d90fd5b3461033557610ec3366138f4565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610f08614301565b925416911690810361036457508082148015906110e8575b61033a5760005b828110610f3057005b73ffffffffffffffffffffffffffffffffffffffff610f58610f5383858a61410b565b61411b565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa908115610ea9576000916110ba575b501561108d575073ffffffffffffffffffffffffffffffffffffffff610fe7610f5383858a61410b565b1690610ff7610f5382868961410b565b9161100382878b61410b565b3592813b1561033557606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af1918215610ea95760019261107c575b5001610f27565b6000611087916139ef565b88611075565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6110db915060203d81116110e1575b6110d381836139ef565b81019061413c565b89610fbd565b503d6110c9565b5082821415610f20565b346103355760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761112961376e565b611131613791565b60443560643567ffffffffffffffff8111610335576111549036906004016137b4565b92909361115f614301565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff821603611204575b50506111e5848484887fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613cb0565b823b6111ed57005b611202956111fc913691613b2d565b93614495565b005b61120d91614216565b86856111b6565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576112bc61376e565b6024359081151591828103610335576113b6575b73ffffffffffffffffffffffffffffffffffffffff806112ee614301565b169116918183146113885760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c38252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507fe4215c6a0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6113e0817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30614216565b6112d0565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346103355761146436613983565b6114967fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611490614301565b90613ee9565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0926114c181613a30565b946114cf60405196876139ef565b818652602086019160051b81019036821161033557915b81831061155357505050906114fc913691613a48565b918051918351830361033a5760005b83811061151457005b8061154d73ffffffffffffffffffffffffffffffffffffffff6115396001948761406d565b5116611545838961406d565b519085613fab565b0161150b565b823573ffffffffffffffffffffffffffffffffffffffff81168103610335578152602092830192016114e6565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e1d6115db7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5614154565b60405191829160208352602083019061372b565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611626613791565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576116be61376e565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806116fd614301565b925416911690810361036457507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff81161561178a5773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22600435611880614301565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff604060002054161561194c5760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610ca4565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576119cb61376e565b6024359060443567ffffffffffffffff8111610335576119ef9036906004016137b4565b91611a1c7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611490614301565b611a5c8482611a567fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c095611a4e614301565b973691613b2d565b94613fab565b803b611a6457005b73ffffffffffffffffffffffffffffffffffffffff806020921693611ad160405194859384937f150b7a020000000000000000000000000000000000000000000000000000000085521660048401526000602484015287604484015260806064840152608483019061372b565b03816000865af1908115610ea957600091611b63575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a0200000000000000000000000000000000000000000000000000000000911603611b3357005b7fc215a7a10000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b6020813d602011611bda575b81611b7c602093836139ef565b81010312611bd65751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610e9e57507fffffffff00000000000000000000000000000000000000000000000000000000611ae7565b5080fd5b3d9150611b6f565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611c1961376e565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0611c46614301565b836000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff8116938415611e525773ffffffffffffffffffffffffffffffffffffffff8116809503611e205782611c9b9185614415565b15611d49575b84600085858383526020527fdead00000000000000000000000000000000000000000000000000000000000060408320558082527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c1602052604082207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4005b7401000000000000000000000000000000000000000016158015611dbd575b611d725780611ca1565b73ffffffffffffffffffffffffffffffffffffffff91507fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff82161415611d68565b85857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b857fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461033557611e8e366138f4565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611ed1614301565b92541691169081036103645750808414801590612026575b61033a5760005b848110611ef957005b611f0481838861410b565b3573ffffffffffffffffffffffffffffffffffffffff811690818103610335576000602091611f37610f53868b8e61410b565b82611fa1611fcd611f49898d8d61410b565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826139ef565b51925af115610ea9576000513d61201d5750803b155b611ff05750600101611ef0565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611fe3565b5082841415611ee9565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761206761376e565b73ffffffffffffffffffffffffffffffffffffffff8116156120d05773ffffffffffffffffffffffffffffffffffffffff166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526020604060002054604051908152f35b7faefbce4e0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206121576004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06140b0565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806121e6614301565b925416911690810361036457507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a0811161226457815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206122d26122cd61376e565b613a94565b6040519015158152f35b346103355761235b73ffffffffffffffffffffffffffffffffffffffff61230236613885565b929193906123327fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611490614301565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0933691613a48565b921690811561244b5782519260005b8481106123ab575050506000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040600020908154019055600080f35b6123b5818361406d565b51806000528360205273ffffffffffffffffffffffffffffffffffffffff6040600020541661241e57908160019260005284602052856040600020558560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a40161236a565b7f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f7851b9cd0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461033557612483366137e2565b61248b614301565b917f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308373ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff821603612535575b5050612511828286867fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613cb0565b803b61251957005b611202936040519361252c6020866139ef565b60008552614495565b61253e91614216565b84836124e2565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761120261257f61376e565b6125ab7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611490614301565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613fab565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760043561260f613791565b612617614301565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036457507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416156126ca57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610ca4565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c90801580156128bb575b15612885575050610e1d60005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b610e1d91620186a08210156128a8576128a290620186a092613ea7565b04612855565b620186a06128b69204613ea7565b612855565b508115612848565b34610335576112026128d4366137e2565b916128dd614301565b7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308173ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff82160361295b575b50507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613cb0565b61296491614216565b8581612933565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576129a261376e565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806129e1614301565b9254169116908103610364575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346103355760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760043567ffffffffffffffff811161033557612aa19036906004016137b4565b60243567ffffffffffffffff811161033557612ac19036906004016137b4565b6044939193359173ffffffffffffffffffffffffffffffffffffffff83168303610335576064359373ffffffffffffffffffffffffffffffffffffffff85168503610335577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc612b2f614301565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015612ff4575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff1690816132e0575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f8ed2355fc3f859d445b81332ba1875c675be71b9fe1bab0a25be6436696b0ec780548216831790557f98ea984a1dd4b0fbb2764a2a70a93d7e6137ea3c70db196cc96460f50c0d1a1f80548216831790557f70a1033a668c0b93d699f00f1cf02b517801b7285ead3ea5fa8d9b43f89ed57180548216831790557f4f521d2bc326c534847f496e961505200b8e61c57a75e48fd6b97dc560e2c5a480548216831790557f0845b122e17f0ee9a0d1d2feeec009013976e8c85c80079e88858099492b187280548216831790557f3f01c033909a538299eeb8bb8b7a2d8e5ca8f4a58a90fe96d157768ed92ef21780548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015612ff4575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff82116131b1578190612de08454613c5d565b601f811161328d575b50600090601f83116001146131eb576000926131e0575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff81116131b157612e6b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554613c5d565b601f811161312d575b506000601f82116001146130315781929394600092613026575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015612ff4575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b013590508480612e8e565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b8781106131155750836001959697106130dd575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a555612ee0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558480806130b0565b9092602060018192868601358155019401910161309c565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c810191602084106131a7575b601f0160051c01905b81811061319b5750612e74565b6000815560010161318e565b9091508190613185565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b013590508780612e00565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110613275575090846001959493921061323d575b505050811b019055612e32565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080613230565b9193602060018192878701358155019501920161321a565b909150836000526020600020601f840160051c810191602085106132d6575b90601f859493920160051c01905b8181106132c75750612de9565b600081558493506001016132ba565b90915081906132ac565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38680612b9c565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761336c61376e565b6024359073ffffffffffffffffffffffffffffffffffffffff8116908115908115613599575b507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06133bc614301565b9184600052816020526040600020549073ffffffffffffffffffffffffffffffffffffffff821693841561356b5784861461353d576133fc818686614415565b156134f157501561346057740100000000000000000000000000000000000000001661344c575b505b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b836000526020528060406000205583613423565b907401000000000000000000000000000000000000000082178092036134dd575b5050826000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c26020526040600020827fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055613425565b846000526020526040600020558380613481565b8473ffffffffffffffffffffffffffffffffffffffff88927fc7563a18000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b847fb7fdc0100000000000000000000000000000000000000000000000000000000060005260045260246000fd5b867fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6135c3907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30614216565b83613392565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206121576004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613bee565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e1d6115db7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4614154565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576004357fffffffff0000000000000000000000000000000000000000000000000000000081168103610335576122d26020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d613b64565b60005b83811061371b5750506000910152565b818101518382015260200161370b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361376781518092818752878088019101613708565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361033557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361033557565b9181601f840112156103355782359167ffffffffffffffff8311610335576020838186019501011161033557565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103355760043573ffffffffffffffffffffffffffffffffffffffff81168103610335579060243573ffffffffffffffffffffffffffffffffffffffff81168103610335579060443590565b9181601f840112156103355782359167ffffffffffffffff8311610335576020808501948460051b01011161033557565b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126103355760043573ffffffffffffffffffffffffffffffffffffffff8116810361033557916024359067ffffffffffffffff8211610335576138f091600401613854565b9091565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103355760043567ffffffffffffffff8111610335578161393d91600401613854565b9290929160243567ffffffffffffffff8111610335578161396091600401613854565b929092916044359067ffffffffffffffff8211610335576138f091600401613854565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103355760043567ffffffffffffffff811161033557816139cc91600401613854565b929092916024359067ffffffffffffffff8211610335576138f091600401613854565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176131b157604052565b67ffffffffffffffff81116131b15760051b60200190565b929190613a5481613a30565b93613a6260405195866139ef565b602085838152019160051b810192831161033557905b828210613a8457505050565b8135815260209182019101613a78565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016908115613aec5773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b67ffffffffffffffff81116131b157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192613b3982613af3565b91613b4760405193846139ef565b829481845281830111610335578281602093846000960137010152565b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114613aec577f01ffc9a7000000000000000000000000000000000000000000000000000000008114613be75760005260205260ff6040600020541690565b5050600190565b816000528060205260406000205473ffffffffffffffffffffffffffffffffffffffff8116156106af57740100000000000000000000000000000000000000001615613aec576002916000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020541690565b90600182811c92168015613ca6575b6020831014613c7757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691613c6c565b909273ffffffffffffffffffffffffffffffffffffffff169283156106dd57846000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff811693841561356b5773ffffffffffffffffffffffffffffffffffffffff8116809503613e755782613d249185614415565b15613dba575b5050836000528060205282604060002055828203613d6b575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b600101816000528060205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81540190558260005260205260406000206001815401905538613d43565b7401000000000000000000000000000000000000000016158015613e2f575b613de35780613d2a565b8273ffffffffffffffffffffffffffffffffffffffff86927fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50846000526002820160205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff82161415613dd9565b86857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b81810292918115918404141715613eba57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff6040600020541615613f435750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b9073ffffffffffffffffffffffffffffffffffffffff1690811561244b57826000528060205273ffffffffffffffffffffffffffffffffffffffff6040600020541661403f57600190836000528060205282604060002055826000520160205260406000206001815401905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4565b827f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b80518210156140815760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8160005260205273ffffffffffffffffffffffffffffffffffffffff604060002054169081156140de575090565b7fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b91908110156140815760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff811681036103355790565b90816020910312610335575180151581036103355790565b906040519182600082549261416884613c5d565b80845293600181169081156141d6575060011461418f575b5061418d925003836139ef565b565b90506000929192526020600020906000915b8183106141ba57505090602061418d9282010138614180565b60209193508060019154838589010152019101909184926141a1565b6020935061418d9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138614180565b5473ffffffffffffffffffffffffffffffffffffffff1690811515806142f7575b61423f575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa908115610ea9576000916142d8575b50156142ab5750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6142f1915060203d6020116110e1576110d381836139ef565b386142a2565b50813b1515614237565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016801561440657323314801561440b575b614406577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c9080331490811561438c575b5061438957503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa908115610ea9576000916143e7575b503861437f565b614400915060203d6020116110e1576110d381836139ef565b386143e0565b503390565b5060183610614348565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315614440575b50505090565b600392935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff6040600020541638808061443a565b73ffffffffffffffffffffffffffffffffffffffff90614507826020949597969716958360405196879586957f150b7a0200000000000000000000000000000000000000000000000000000000875216600486015216602484015287604484015260806064840152608483019061372b565b03816000865af1908115610ea95760009161456b575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a0200000000000000000000000000000000000000000000000000000000911603611b33575050565b6020813d6020116145de575b81614584602093836139ef565b81010312611bd65751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610e9e57507fffffffff0000000000000000000000000000000000000000000000000000000061451d565b3d915061457756fea2646970667358221220f7c4e8ce333c86cf42b0a886b7470883a5d68bce73c22a66f26b2fed1106793c64736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
