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