{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC721FullBurnProxiedMock",
  "sourceName": "contracts/mocks/token/ERC721/preset/proxied/ERC721FullBurnProxiedMock.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": [],
      "name": "__msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "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": "0x60a03461007f57601f6148a238819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051614807908161009b823960805181818161283a01528181613b39015281816143a601526145510152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461370f57806306fdde03146136b4578063081812fc14613657578063095ea7b3146133c35780630e07f85414612ae0578063114ba8ee146129f957806323b872dd146129515780632a55205a1461285e5780632b4c9f16146127ef5780632f2ff15d1461266357806331e66e1e146125e057806340c10f191461255057806342842e0e146124805780634684d7e9146122e7578063572b6c051461229c57806361ba27da146121805780636352211e1461210557806370a082311461203b57806373c8a95814611e8b57806379cc679014611bed5780638832e6e31461199f5780638bb9c5bf146118305780638da5cb5b146117bf5780638dc251e31461169257806391d14854146115fa57806395d89b411461158b5780639da5e83214611461578063a0c76f62146113f0578063a22cb46514611290578063b0ccc31e1461121f578063b88d4fde146110fd578063c3666c3614610ec0578063c87b56dd14610d0d578063d539139314610cb4578063d547741f14610b2b578063e1a8bf2c14610aef578063e985e9c514610a3b578063f247296514610816578063f2fde38b14610722578063f3993d111461039c5763f7ba94bd146101df57600080fd5b34610340576101ed36613a11565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061022e61438f565b925416911690810361036f57508181036103455760005b81811061024e57005b610259818387614199565b3573ffffffffffffffffffffffffffffffffffffffff811680910361034057610283828587614199565b359081471061030e57600080809381935af13d15610306573d906102a682613b81565b916102b46040519384613a7d565b82523d6000602084013e5b156102cd5750600101610245565b8051156102dc57602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b6060906102bf565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103405760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576103d36137fc565b6103db61381f565b9060443567ffffffffffffffff8111610340576103fc9036906004016138e2565b9261040561438f565b907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308273ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff821603610712575b505073ffffffffffffffffffffffffffffffffffffffff7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c091169384156106e8576104aa83828496946144ba565b9373ffffffffffffffffffffffffffffffffffffffff600095159216945b87811061052d578787878181141580610524575b6104e257005b60009081527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040808220805485900390559181522080549091019055005b508215156104dc565b610538818986614199565b35806000528260205260406000205473ffffffffffffffffffffffffffffffffffffffff811680156106ba57880361068857846105b1575b509081600192600052836020528860406000205588887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4016104c8565b7401000000000000000000000000000000000000000016158015610625575b6105da5789610570565b8673ffffffffffffffffffffffffffffffffffffffff877fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff871614156105d0565b50867f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b827fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f86c870670000000000000000000000000000000000000000000000000000000060005260046000fd5b61071b916142a4565b858261045c565b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576107596137fc565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc9061078361438f565b9073ffffffffffffffffffffffffffffffffffffffff80845416921682810361036f575073ffffffffffffffffffffffffffffffffffffffff16918282036107c757005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346103405761082436613913565b917fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c09161084f61438f565b9261085b8484836144ba565b9373ffffffffffffffffffffffffffffffffffffffff600095159416945b8681106108c05786868161088957005b6000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040600020908154039055600080f35b6108cb818886614199565b35806000528360205260406000205473ffffffffffffffffffffffffffffffffffffffff811680156106ba5788036106885786610964575b509081600192600052846020527fdead0000000000000000000000000000000000000000000000000000000000006040600020556000887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a401610879565b74010000000000000000000000000000000000000000161580156109d8575b61098d5788610903565b8673ffffffffffffffffffffffffffffffffffffffff847fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff84161415610983565b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057610a726137fc565b73ffffffffffffffffffffffffffffffffffffffff610a8f61381f565b91166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576020604051620186a08152f35b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057600435610b6561381f565b610b6d61438f565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036f57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416610c1f57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057610dff6000600435610d6e817fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061413e565b5073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541660405180809581947ff724dad700000000000000000000000000000000000000000000000000000000835230600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03915afa908115610eb457600091610e2c575b60405160208082528190610e28908201856137b9565b0390f35b3d8083833e610e3b8183613a7d565b810190602081830312610eac5780519067ffffffffffffffff8211610eb0570181601f82011215610eac57805192610e7284613b81565b92610e806040519485613a7d565b84845260208584010111610ea95750610e2892610ea39160208085019101613796565b90610e12565b80fd5b8280fd5b8380fd5b6040513d6000823e3d90fd5b3461034057610ece36613982565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610f1361438f565b925416911690810361036f57508082148015906110f3575b6103455760005b828110610f3b57005b73ffffffffffffffffffffffffffffffffffffffff610f63610f5e83858a614199565b6141a9565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa908115610eb4576000916110c5575b5015611098575073ffffffffffffffffffffffffffffffffffffffff610ff2610f5e83858a614199565b1690611002610f5e828689614199565b9161100e82878b614199565b3592813b1561034057606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af1918215610eb457600192611087575b5001610f32565b600061109291613a7d565b88611080565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6110e6915060203d81116110ec575b6110de8183613a7d565b8101906141ca565b89610fc8565b503d6110d4565b5082821415610f2b565b346103405760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576111346137fc565b61113c61381f565b60443560643567ffffffffffffffff81116103405761115f903690600401613842565b92909361116a61438f565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff82160361120f575b50506111f0848484887fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613d3e565b823b6111f857005b61120d95611207913691613bbb565b93614680565b005b611218916142a4565b86856111c1565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576112c76137fc565b6024359081151591828103610340576113c1575b73ffffffffffffffffffffffffffffffffffffffff806112f961438f565b169116918183146113935760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c38252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507fe4215c6a0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6113eb817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd306142a4565b6112db565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346103405761146f36613a11565b6114a17fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261149b61438f565b90613f77565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0926114cc81613abe565b946114da6040519687613a7d565b818652602086019160051b81019036821161034057915b81831061155e5750505090611507913691613ad6565b91805191835183036103455760005b83811061151f57005b8061155873ffffffffffffffffffffffffffffffffffffffff611544600194876140fb565b511661155083896140fb565b519085614039565b01611516565b823573ffffffffffffffffffffffffffffffffffffffff81168103610340578152602092830192016114f1565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057610e286115e67f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56141e2565b6040519182916020835260208301906137b9565b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405761163161381f565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576116c96137fc565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061170861438f565b925416911690810361036f57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff8116156117955773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043561188b61438f565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416156119575760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610caf565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b346103405760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576119d66137fc565b6024359060443567ffffffffffffffff8111610340576119fa903690600401613842565b91611a277fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261149b61438f565b611a678482611a617fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c095611a5961438f565b973691613bbb565b94614039565b803b611a6f57005b73ffffffffffffffffffffffffffffffffffffffff806020921693611adc60405194859384937f150b7a02000000000000000000000000000000000000000000000000000000008552166004840152600060248401528760448401526080606484015260848301906137b9565b03816000865af1908115610eb457600091611b6e575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a0200000000000000000000000000000000000000000000000000000000911603611b3e57005b7fc215a7a10000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b6020813d602011611be5575b81611b8760209383613a7d565b81010312611be15751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610ea957507fffffffff00000000000000000000000000000000000000000000000000000000611af2565b5080fd5b3d9150611b7a565b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057611c246137fc565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0611c5161438f565b836000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff8116938415611e5d5773ffffffffffffffffffffffffffffffffffffffff8116809503611e2b5782611ca691856144ba565b15611d54575b84600085858383526020527fdead00000000000000000000000000000000000000000000000000000000000060408320558082527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c1602052604082207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4005b7401000000000000000000000000000000000000000016158015611dc8575b611d7d5780611cac565b73ffffffffffffffffffffffffffffffffffffffff91507fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff82161415611d73565b85857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b857fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461034057611e9936613982565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611edc61438f565b925416911690810361036f5750808414801590612031575b6103455760005b848110611f0457005b611f0f818388614199565b3573ffffffffffffffffffffffffffffffffffffffff811690818103610340576000602091611f42610f5e868b8e614199565b82611fac611fd8611f54898d8d614199565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613a7d565b51925af115610eb4576000513d6120285750803b155b611ffb5750600101611efb565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611fee565b5082841415611ef4565b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576120726137fc565b73ffffffffffffffffffffffffffffffffffffffff8116156120db5773ffffffffffffffffffffffffffffffffffffffff166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526020604060002054604051908152f35b7faefbce4e0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760206121626004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061413e565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806121f161438f565b925416911690810361036f57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a0811161226f57815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760206122dd6122d86137fc565b613b22565b6040519015158152f35b346103405761236673ffffffffffffffffffffffffffffffffffffffff61230d36613913565b9291939061233d7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261149b61438f565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0933691613ad6565b92169081156124565782519260005b8481106123b6575050506000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040600020908154019055600080f35b6123c081836140fb565b51806000528360205273ffffffffffffffffffffffffffffffffffffffff6040600020541661242957908160019260005284602052856040600020558560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a401612375565b7f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f7851b9cd0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103405761248e36613870565b61249661438f565b917f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308373ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff821603612540575b505061251c828286867fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613d3e565b803b61252457005b61120d9360405193612537602086613a7d565b60008552614680565b612549916142a4565b84836124ed565b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405761120d61258a6137fc565b6125b67fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261149b61438f565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0614039565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057604061261961453a565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760043561269d61381f565b6126a561438f565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036f57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054161561275857005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610caf565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c9080158015612949575b15612913575050610e2860005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b610e2891620186a08210156129365761293090620186a092613f35565b046128e3565b620186a06129449204613f35565b6128e3565b5081156128d6565b346103405761120d61296236613870565b9161296b61438f565b7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308173ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff8216036129e9575b50507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613d3e565b6129f2916142a4565b85816129c1565b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057612a306137fc565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80612a6f61438f565b925416911690810361036f575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346103405760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760043567ffffffffffffffff811161034057612b2f903690600401613842565b60243567ffffffffffffffff811161034057612b4f903690600401613842565b6044939193359173ffffffffffffffffffffffffffffffffffffffff83168303610340576064359373ffffffffffffffffffffffffffffffffffffffff85168503610340577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc612bbd61438f565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015613082575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff16908161336e575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f8ed2355fc3f859d445b81332ba1875c675be71b9fe1bab0a25be6436696b0ec780548216831790557f98ea984a1dd4b0fbb2764a2a70a93d7e6137ea3c70db196cc96460f50c0d1a1f80548216831790557f70a1033a668c0b93d699f00f1cf02b517801b7285ead3ea5fa8d9b43f89ed57180548216831790557f4f521d2bc326c534847f496e961505200b8e61c57a75e48fd6b97dc560e2c5a480548216831790557f0845b122e17f0ee9a0d1d2feeec009013976e8c85c80079e88858099492b187280548216831790557f3f01c033909a538299eeb8bb8b7a2d8e5ca8f4a58a90fe96d157768ed92ef21780548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015613082575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff821161323f578190612e6e8454613ceb565b601f811161331b575b50600090601f83116001146132795760009261326e575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff811161323f57612ef97f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554613ceb565b601f81116131bb575b506000601f82116001146130bf57819293946000926130b4575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015613082575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b013590508480612f1c565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b8781106131a357508360019596971061316b575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a555612f6e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c1991013516905584808061313e565b9092602060018192868601358155019401910161312a565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c81019160208410613235575b601f0160051c01905b8181106132295750612f02565b6000815560010161321c565b9091508190613213565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b013590508780612e8e565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b81811061330357509084600195949392106132cb575b505050811b019055612ec0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558780806132be565b919360206001819287870135815501950192016132a8565b909150836000526020600020601f840160051c81019160208510613364575b90601f859493920160051c01905b8181106133555750612e77565b60008155849350600101613348565b909150819061333a565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38680612c2a565b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576133fa6137fc565b6024359073ffffffffffffffffffffffffffffffffffffffff8116908115908115613627575b507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061344a61438f565b9184600052816020526040600020549073ffffffffffffffffffffffffffffffffffffffff82169384156135f9578486146135cb5761348a8186866144ba565b1561357f5750156134ee5774010000000000000000000000000000000000000000166134da575b505b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b8360005260205280604060002055836134b1565b9074010000000000000000000000000000000000000000821780920361356b575b5050826000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c26020526040600020827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556134b3565b84600052602052604060002055838061350f565b8473ffffffffffffffffffffffffffffffffffffffff88927fc7563a18000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b847fb7fdc0100000000000000000000000000000000000000000000000000000000060005260045260246000fd5b867fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b613651907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd306142a4565b83613420565b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760206121626004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613c7c565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057610e286115e67f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a46141e2565b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576004357fffffffff0000000000000000000000000000000000000000000000000000000081168103610340576122dd6020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d613bf2565b60005b8381106137a95750506000910152565b8181015183820152602001613799565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936137f581518092818752878088019101613796565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361034057565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361034057565b9181601f840112156103405782359167ffffffffffffffff8311610340576020838186019501011161034057565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103405760043573ffffffffffffffffffffffffffffffffffffffff81168103610340579060243573ffffffffffffffffffffffffffffffffffffffff81168103610340579060443590565b9181601f840112156103405782359167ffffffffffffffff8311610340576020808501948460051b01011161034057565b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126103405760043573ffffffffffffffffffffffffffffffffffffffff8116810361034057916024359067ffffffffffffffff82116103405761397e916004016138e2565b9091565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103405760043567ffffffffffffffff811161034057816139cb916004016138e2565b9290929160243567ffffffffffffffff811161034057816139ee916004016138e2565b929092916044359067ffffffffffffffff82116103405761397e916004016138e2565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103405760043567ffffffffffffffff81116103405781613a5a916004016138e2565b929092916024359067ffffffffffffffff82116103405761397e916004016138e2565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761323f57604052565b67ffffffffffffffff811161323f5760051b60200190565b929190613ae281613abe565b93613af06040519586613a7d565b602085838152019160051b810192831161034057905b828210613b1257505050565b8135815260209182019101613b06565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016908115613b7a5773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b67ffffffffffffffff811161323f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192613bc782613b81565b91613bd56040519384613a7d565b829481845281830111610340578281602093846000960137010152565b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114613b7a577f01ffc9a7000000000000000000000000000000000000000000000000000000008114613c755760005260205260ff6040600020541690565b5050600190565b816000528060205260406000205473ffffffffffffffffffffffffffffffffffffffff8116156106ba57740100000000000000000000000000000000000000001615613b7a576002916000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020541690565b90600182811c92168015613d34575b6020831014613d0557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691613cfa565b909273ffffffffffffffffffffffffffffffffffffffff169283156106e857846000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff81169384156135f95773ffffffffffffffffffffffffffffffffffffffff8116809503613f035782613db291856144ba565b15613e48575b5050836000528060205282604060002055828203613df9575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b600101816000528060205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81540190558260005260205260406000206001815401905538613dd1565b7401000000000000000000000000000000000000000016158015613ebd575b613e715780613db8565b8273ffffffffffffffffffffffffffffffffffffffff86927fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50846000526002820160205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff82161415613e67565b86857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b81810292918115918404141715613f4857565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff6040600020541615613fd15750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b9073ffffffffffffffffffffffffffffffffffffffff1690811561245657826000528060205273ffffffffffffffffffffffffffffffffffffffff604060002054166140cd57600190836000528060205282604060002055826000520160205260406000206001815401905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4565b827f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b805182101561410f5760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8160005260205273ffffffffffffffffffffffffffffffffffffffff6040600020541690811561416c575090565b7fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b919081101561410f5760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff811681036103405790565b90816020910312610340575180151581036103405790565b90604051918260008254926141f684613ceb565b8084529360018116908115614264575060011461421d575b5061421b92500383613a7d565b565b90506000929192526020600020906000915b81831061424857505090602061421b928201013861420e565b602091935080600191548385890101520191019091849261422f565b6020935061421b9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861420e565b5473ffffffffffffffffffffffffffffffffffffffff169081151580614385575b6142cd575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa908115610eb457600091614366575b50156143395750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b61437f915060203d6020116110ec576110de8183613a7d565b38614330565b50813b15156142c5565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156144ab5732331480156144b0575b6144ab577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c9080331490811561441a575b5061441757503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa908115610eb45760009161448c575b503861440d565b6144a5915060203d6020116110ec576110de8183613a7d565b38614485565b503390565b50601836106143d6565b73ffffffffffffffffffffffffffffffffffffffff80831690841614929183156144e5575b50505090565b600392935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff604060002054163880806144df565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016801561466e573233148015614676575b61466e578033149081156145cd575b5061459c576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116103405760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa908115610eb45760009161464f575b5038614590565b614668915060203d6020116110ec576110de8183613a7d565b38614648565b506000903690565b5060183610614581565b73ffffffffffffffffffffffffffffffffffffffff906146f2826020949597969716958360405196879586957f150b7a020000000000000000000000000000000000000000000000000000000087521660048601521660248401528760448401526080606484015260848301906137b9565b03816000865af1908115610eb457600091614756575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a0200000000000000000000000000000000000000000000000000000000911603611b3e575050565b6020813d6020116147c9575b8161476f60209383613a7d565b81010312611be15751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610ea957507fffffffff00000000000000000000000000000000000000000000000000000000614708565b3d915061476256fea2646970667358221220b26ff95383482afed2a4d1b37f5f3b248bfda17c34803ab1663a3d9c62a3b42f64736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461370f57806306fdde03146136b4578063081812fc14613657578063095ea7b3146133c35780630e07f85414612ae0578063114ba8ee146129f957806323b872dd146129515780632a55205a1461285e5780632b4c9f16146127ef5780632f2ff15d1461266357806331e66e1e146125e057806340c10f191461255057806342842e0e146124805780634684d7e9146122e7578063572b6c051461229c57806361ba27da146121805780636352211e1461210557806370a082311461203b57806373c8a95814611e8b57806379cc679014611bed5780638832e6e31461199f5780638bb9c5bf146118305780638da5cb5b146117bf5780638dc251e31461169257806391d14854146115fa57806395d89b411461158b5780639da5e83214611461578063a0c76f62146113f0578063a22cb46514611290578063b0ccc31e1461121f578063b88d4fde146110fd578063c3666c3614610ec0578063c87b56dd14610d0d578063d539139314610cb4578063d547741f14610b2b578063e1a8bf2c14610aef578063e985e9c514610a3b578063f247296514610816578063f2fde38b14610722578063f3993d111461039c5763f7ba94bd146101df57600080fd5b34610340576101ed36613a11565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061022e61438f565b925416911690810361036f57508181036103455760005b81811061024e57005b610259818387614199565b3573ffffffffffffffffffffffffffffffffffffffff811680910361034057610283828587614199565b359081471061030e57600080809381935af13d15610306573d906102a682613b81565b916102b46040519384613a7d565b82523d6000602084013e5b156102cd5750600101610245565b8051156102dc57602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b6060906102bf565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103405760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576103d36137fc565b6103db61381f565b9060443567ffffffffffffffff8111610340576103fc9036906004016138e2565b9261040561438f565b907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308273ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff821603610712575b505073ffffffffffffffffffffffffffffffffffffffff7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c091169384156106e8576104aa83828496946144ba565b9373ffffffffffffffffffffffffffffffffffffffff600095159216945b87811061052d578787878181141580610524575b6104e257005b60009081527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040808220805485900390559181522080549091019055005b508215156104dc565b610538818986614199565b35806000528260205260406000205473ffffffffffffffffffffffffffffffffffffffff811680156106ba57880361068857846105b1575b509081600192600052836020528860406000205588887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4016104c8565b7401000000000000000000000000000000000000000016158015610625575b6105da5789610570565b8673ffffffffffffffffffffffffffffffffffffffff877fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff871614156105d0565b50867f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b827fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f86c870670000000000000000000000000000000000000000000000000000000060005260046000fd5b61071b916142a4565b858261045c565b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576107596137fc565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc9061078361438f565b9073ffffffffffffffffffffffffffffffffffffffff80845416921682810361036f575073ffffffffffffffffffffffffffffffffffffffff16918282036107c757005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346103405761082436613913565b917fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c09161084f61438f565b9261085b8484836144ba565b9373ffffffffffffffffffffffffffffffffffffffff600095159416945b8681106108c05786868161088957005b6000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040600020908154039055600080f35b6108cb818886614199565b35806000528360205260406000205473ffffffffffffffffffffffffffffffffffffffff811680156106ba5788036106885786610964575b509081600192600052846020527fdead0000000000000000000000000000000000000000000000000000000000006040600020556000887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a401610879565b74010000000000000000000000000000000000000000161580156109d8575b61098d5788610903565b8673ffffffffffffffffffffffffffffffffffffffff847fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff84161415610983565b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057610a726137fc565b73ffffffffffffffffffffffffffffffffffffffff610a8f61381f565b91166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576020604051620186a08152f35b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057600435610b6561381f565b610b6d61438f565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036f57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416610c1f57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057610dff6000600435610d6e817fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061413e565b5073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541660405180809581947ff724dad700000000000000000000000000000000000000000000000000000000835230600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03915afa908115610eb457600091610e2c575b60405160208082528190610e28908201856137b9565b0390f35b3d8083833e610e3b8183613a7d565b810190602081830312610eac5780519067ffffffffffffffff8211610eb0570181601f82011215610eac57805192610e7284613b81565b92610e806040519485613a7d565b84845260208584010111610ea95750610e2892610ea39160208085019101613796565b90610e12565b80fd5b8280fd5b8380fd5b6040513d6000823e3d90fd5b3461034057610ece36613982565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610f1361438f565b925416911690810361036f57508082148015906110f3575b6103455760005b828110610f3b57005b73ffffffffffffffffffffffffffffffffffffffff610f63610f5e83858a614199565b6141a9565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa908115610eb4576000916110c5575b5015611098575073ffffffffffffffffffffffffffffffffffffffff610ff2610f5e83858a614199565b1690611002610f5e828689614199565b9161100e82878b614199565b3592813b1561034057606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af1918215610eb457600192611087575b5001610f32565b600061109291613a7d565b88611080565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6110e6915060203d81116110ec575b6110de8183613a7d565b8101906141ca565b89610fc8565b503d6110d4565b5082821415610f2b565b346103405760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576111346137fc565b61113c61381f565b60443560643567ffffffffffffffff81116103405761115f903690600401613842565b92909361116a61438f565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff82160361120f575b50506111f0848484887fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613d3e565b823b6111f857005b61120d95611207913691613bbb565b93614680565b005b611218916142a4565b86856111c1565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576112c76137fc565b6024359081151591828103610340576113c1575b73ffffffffffffffffffffffffffffffffffffffff806112f961438f565b169116918183146113935760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c38252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507fe4215c6a0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6113eb817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd306142a4565b6112db565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346103405761146f36613a11565b6114a17fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261149b61438f565b90613f77565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0926114cc81613abe565b946114da6040519687613a7d565b818652602086019160051b81019036821161034057915b81831061155e5750505090611507913691613ad6565b91805191835183036103455760005b83811061151f57005b8061155873ffffffffffffffffffffffffffffffffffffffff611544600194876140fb565b511661155083896140fb565b519085614039565b01611516565b823573ffffffffffffffffffffffffffffffffffffffff81168103610340578152602092830192016114f1565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057610e286115e67f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56141e2565b6040519182916020835260208301906137b9565b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405761163161381f565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576116c96137fc565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061170861438f565b925416911690810361036f57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff8116156117955773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043561188b61438f565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416156119575760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610caf565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b346103405760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576119d66137fc565b6024359060443567ffffffffffffffff8111610340576119fa903690600401613842565b91611a277fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261149b61438f565b611a678482611a617fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c095611a5961438f565b973691613bbb565b94614039565b803b611a6f57005b73ffffffffffffffffffffffffffffffffffffffff806020921693611adc60405194859384937f150b7a02000000000000000000000000000000000000000000000000000000008552166004840152600060248401528760448401526080606484015260848301906137b9565b03816000865af1908115610eb457600091611b6e575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a0200000000000000000000000000000000000000000000000000000000911603611b3e57005b7fc215a7a10000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b6020813d602011611be5575b81611b8760209383613a7d565b81010312611be15751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610ea957507fffffffff00000000000000000000000000000000000000000000000000000000611af2565b5080fd5b3d9150611b7a565b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057611c246137fc565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0611c5161438f565b836000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff8116938415611e5d5773ffffffffffffffffffffffffffffffffffffffff8116809503611e2b5782611ca691856144ba565b15611d54575b84600085858383526020527fdead00000000000000000000000000000000000000000000000000000000000060408320558082527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c1602052604082207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4005b7401000000000000000000000000000000000000000016158015611dc8575b611d7d5780611cac565b73ffffffffffffffffffffffffffffffffffffffff91507fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff82161415611d73565b85857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b857fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461034057611e9936613982565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611edc61438f565b925416911690810361036f5750808414801590612031575b6103455760005b848110611f0457005b611f0f818388614199565b3573ffffffffffffffffffffffffffffffffffffffff811690818103610340576000602091611f42610f5e868b8e614199565b82611fac611fd8611f54898d8d614199565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613a7d565b51925af115610eb4576000513d6120285750803b155b611ffb5750600101611efb565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611fee565b5082841415611ef4565b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576120726137fc565b73ffffffffffffffffffffffffffffffffffffffff8116156120db5773ffffffffffffffffffffffffffffffffffffffff166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526020604060002054604051908152f35b7faefbce4e0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760206121626004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061413e565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806121f161438f565b925416911690810361036f57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a0811161226f57815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760206122dd6122d86137fc565b613b22565b6040519015158152f35b346103405761236673ffffffffffffffffffffffffffffffffffffffff61230d36613913565b9291939061233d7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261149b61438f565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0933691613ad6565b92169081156124565782519260005b8481106123b6575050506000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040600020908154019055600080f35b6123c081836140fb565b51806000528360205273ffffffffffffffffffffffffffffffffffffffff6040600020541661242957908160019260005284602052856040600020558560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a401612375565b7f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f7851b9cd0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103405761248e36613870565b61249661438f565b917f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308373ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff821603612540575b505061251c828286867fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613d3e565b803b61252457005b61120d9360405193612537602086613a7d565b60008552614680565b612549916142a4565b84836124ed565b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405761120d61258a6137fc565b6125b67fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261149b61438f565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0614039565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057604061261961453a565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760043561269d61381f565b6126a561438f565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036f57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054161561275857005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610caf565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c9080158015612949575b15612913575050610e2860005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b610e2891620186a08210156129365761293090620186a092613f35565b046128e3565b620186a06129449204613f35565b6128e3565b5081156128d6565b346103405761120d61296236613870565b9161296b61438f565b7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308173ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff8216036129e9575b50507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613d3e565b6129f2916142a4565b85816129c1565b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057612a306137fc565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80612a6f61438f565b925416911690810361036f575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346103405760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760043567ffffffffffffffff811161034057612b2f903690600401613842565b60243567ffffffffffffffff811161034057612b4f903690600401613842565b6044939193359173ffffffffffffffffffffffffffffffffffffffff83168303610340576064359373ffffffffffffffffffffffffffffffffffffffff85168503610340577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc612bbd61438f565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015613082575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff16908161336e575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f8ed2355fc3f859d445b81332ba1875c675be71b9fe1bab0a25be6436696b0ec780548216831790557f98ea984a1dd4b0fbb2764a2a70a93d7e6137ea3c70db196cc96460f50c0d1a1f80548216831790557f70a1033a668c0b93d699f00f1cf02b517801b7285ead3ea5fa8d9b43f89ed57180548216831790557f4f521d2bc326c534847f496e961505200b8e61c57a75e48fd6b97dc560e2c5a480548216831790557f0845b122e17f0ee9a0d1d2feeec009013976e8c85c80079e88858099492b187280548216831790557f3f01c033909a538299eeb8bb8b7a2d8e5ca8f4a58a90fe96d157768ed92ef21780548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015613082575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff821161323f578190612e6e8454613ceb565b601f811161331b575b50600090601f83116001146132795760009261326e575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff811161323f57612ef97f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554613ceb565b601f81116131bb575b506000601f82116001146130bf57819293946000926130b4575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015613082575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b013590508480612f1c565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b8781106131a357508360019596971061316b575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a555612f6e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c1991013516905584808061313e565b9092602060018192868601358155019401910161312a565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c81019160208410613235575b601f0160051c01905b8181106132295750612f02565b6000815560010161321c565b9091508190613213565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b013590508780612e8e565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b81811061330357509084600195949392106132cb575b505050811b019055612ec0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558780806132be565b919360206001819287870135815501950192016132a8565b909150836000526020600020601f840160051c81019160208510613364575b90601f859493920160051c01905b8181106133555750612e77565b60008155849350600101613348565b909150819061333a565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38680612c2a565b346103405760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576133fa6137fc565b6024359073ffffffffffffffffffffffffffffffffffffffff8116908115908115613627575b507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061344a61438f565b9184600052816020526040600020549073ffffffffffffffffffffffffffffffffffffffff82169384156135f9578486146135cb5761348a8186866144ba565b1561357f5750156134ee5774010000000000000000000000000000000000000000166134da575b505b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b8360005260205280604060002055836134b1565b9074010000000000000000000000000000000000000000821780920361356b575b5050826000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c26020526040600020827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556134b3565b84600052602052604060002055838061350f565b8473ffffffffffffffffffffffffffffffffffffffff88927fc7563a18000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b847fb7fdc0100000000000000000000000000000000000000000000000000000000060005260045260246000fd5b867fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b613651907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd306142a4565b83613420565b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103405760206121626004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613c7c565b346103405760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261034057610e286115e67f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a46141e2565b346103405760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610340576004357fffffffff0000000000000000000000000000000000000000000000000000000081168103610340576122dd6020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d613bf2565b60005b8381106137a95750506000910152565b8181015183820152602001613799565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936137f581518092818752878088019101613796565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361034057565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361034057565b9181601f840112156103405782359167ffffffffffffffff8311610340576020838186019501011161034057565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103405760043573ffffffffffffffffffffffffffffffffffffffff81168103610340579060243573ffffffffffffffffffffffffffffffffffffffff81168103610340579060443590565b9181601f840112156103405782359167ffffffffffffffff8311610340576020808501948460051b01011161034057565b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126103405760043573ffffffffffffffffffffffffffffffffffffffff8116810361034057916024359067ffffffffffffffff82116103405761397e916004016138e2565b9091565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103405760043567ffffffffffffffff811161034057816139cb916004016138e2565b9290929160243567ffffffffffffffff811161034057816139ee916004016138e2565b929092916044359067ffffffffffffffff82116103405761397e916004016138e2565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103405760043567ffffffffffffffff81116103405781613a5a916004016138e2565b929092916024359067ffffffffffffffff82116103405761397e916004016138e2565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761323f57604052565b67ffffffffffffffff811161323f5760051b60200190565b929190613ae281613abe565b93613af06040519586613a7d565b602085838152019160051b810192831161034057905b828210613b1257505050565b8135815260209182019101613b06565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016908115613b7a5773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b67ffffffffffffffff811161323f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192613bc782613b81565b91613bd56040519384613a7d565b829481845281830111610340578281602093846000960137010152565b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114613b7a577f01ffc9a7000000000000000000000000000000000000000000000000000000008114613c755760005260205260ff6040600020541690565b5050600190565b816000528060205260406000205473ffffffffffffffffffffffffffffffffffffffff8116156106ba57740100000000000000000000000000000000000000001615613b7a576002916000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020541690565b90600182811c92168015613d34575b6020831014613d0557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691613cfa565b909273ffffffffffffffffffffffffffffffffffffffff169283156106e857846000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff81169384156135f95773ffffffffffffffffffffffffffffffffffffffff8116809503613f035782613db291856144ba565b15613e48575b5050836000528060205282604060002055828203613df9575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b600101816000528060205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81540190558260005260205260406000206001815401905538613dd1565b7401000000000000000000000000000000000000000016158015613ebd575b613e715780613db8565b8273ffffffffffffffffffffffffffffffffffffffff86927fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50846000526002820160205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff82161415613e67565b86857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b81810292918115918404141715613f4857565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff6040600020541615613fd15750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b9073ffffffffffffffffffffffffffffffffffffffff1690811561245657826000528060205273ffffffffffffffffffffffffffffffffffffffff604060002054166140cd57600190836000528060205282604060002055826000520160205260406000206001815401905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4565b827f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b805182101561410f5760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8160005260205273ffffffffffffffffffffffffffffffffffffffff6040600020541690811561416c575090565b7fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b919081101561410f5760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff811681036103405790565b90816020910312610340575180151581036103405790565b90604051918260008254926141f684613ceb565b8084529360018116908115614264575060011461421d575b5061421b92500383613a7d565b565b90506000929192526020600020906000915b81831061424857505090602061421b928201013861420e565b602091935080600191548385890101520191019091849261422f565b6020935061421b9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861420e565b5473ffffffffffffffffffffffffffffffffffffffff169081151580614385575b6142cd575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa908115610eb457600091614366575b50156143395750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b61437f915060203d6020116110ec576110de8183613a7d565b38614330565b50813b15156142c5565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156144ab5732331480156144b0575b6144ab577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c9080331490811561441a575b5061441757503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa908115610eb45760009161448c575b503861440d565b6144a5915060203d6020116110ec576110de8183613a7d565b38614485565b503390565b50601836106143d6565b73ffffffffffffffffffffffffffffffffffffffff80831690841614929183156144e5575b50505090565b600392935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff604060002054163880806144df565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016801561466e573233148015614676575b61466e578033149081156145cd575b5061459c576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116103405760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa908115610eb45760009161464f575b5038614590565b614668915060203d6020116110ec576110de8183613a7d565b38614648565b506000903690565b5060183610614581565b73ffffffffffffffffffffffffffffffffffffffff906146f2826020949597969716958360405196879586957f150b7a020000000000000000000000000000000000000000000000000000000087521660048601521660248401528760448401526080606484015260848301906137b9565b03816000865af1908115610eb457600091614756575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a0200000000000000000000000000000000000000000000000000000000911603611b3e575050565b6020813d6020116147c9575b8161476f60209383613a7d565b81010312611be15751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610ea957507fffffffff00000000000000000000000000000000000000000000000000000000614708565b3d915061476256fea2646970667358221220b26ff95383482afed2a4d1b37f5f3b248bfda17c34803ab1663a3d9c62a3b42f64736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
