text: "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.TestNFT__factory = void 0;
  const ethers_1 = require("ethers");
  const _abi = [
      {
          constant: true,
          inputs: [
              {
                  name: "interfaceId",
                  type: "bytes4",
              },
          ],
          name: "supportsInterface",
          outputs: [
              {
                  name: "",
                  type: "bool",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: true,
          inputs: [],
          name: "name",
          outputs: [
              {
                  name: "",
                  type: "string",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: true,
          inputs: [
              {
                  name: "tokenId",
                  type: "uint256",
              },
          ],
          name: "getApproved",
          outputs: [
              {
                  name: "",
                  type: "address",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: false,
          inputs: [
              {
                  name: "to",
                  type: "address",
              },
              {
                  name: "tokenId",
                  type: "uint256",
              },
          ],
          name: "approve",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: false,
          inputs: [
              {
                  name: "tos",
                  type: "address[]",
              },
              {
                  name: "ids",
                  type: "uint256[]",
              },
          ],
          name: "bulkTransfer",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: true,
          inputs: [],
          name: "totalSupply",
          outputs: [
              {
                  name: "",
                  type: "uint256",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: false,
          inputs: [
              {
                  name: "from",
                  type: "address",
              },
              {
                  name: "to",
                  type: "address",
              },
              {
                  name: "tokenId",
                  type: "uint256",
              },
          ],
          name: "transferFrom",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: true,
          inputs: [
              {
                  name: "owner",
                  type: "address",
              },
              {
                  name: "index",
                  type: "uint256",
              },
          ],
          name: "tokenOfOwnerByIndex",
          outputs: [
              {
                  name: "",
                  type: "uint256",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: false,
          inputs: [],
          name: "unpause",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: false,
          inputs: [
              {
                  name: "to",
                  type: "address",
              },
              {
                  name: "tokenId",
                  type: "uint256",
              },
          ],
          name: "mint",
          outputs: [
              {
                  name: "",
                  type: "bool",
              },
          ],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: false,
          inputs: [
              {
                  name: "from",
                  type: "address",
              },
              {
                  name: "to",
                  type: "address",
              },
              {
                  name: "tokenId",
                  type: "uint256",
              },
          ],
          name: "safeTransferFrom",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: false,
          inputs: [
              {
                  name: "tokenId",
                  type: "uint256",
              },
          ],
          name: "burn",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: true,
          inputs: [
              {
                  name: "account",
                  type: "address",
              },
          ],
          name: "isPauser",
          outputs: [
              {
                  name: "",
                  type: "bool",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: false,
          inputs: [
              {
                  name: "amount",
                  type: "uint256",
              },
          ],
          name: "massMint",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: true,
          inputs: [
              {
                  name: "index",
                  type: "uint256",
              },
          ],
          name: "tokenByIndex",
          outputs: [
              {
                  name: "",
                  type: "uint256",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: true,
          inputs: [],
          name: "paused",
          outputs: [
              {
                  name: "",
                  type: "bool",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: true,
          inputs: [
              {
                  name: "tokenId",
                  type: "uint256",
              },
          ],
          name: "ownerOf",
          outputs: [
              {
                  name: "",
                  type: "address",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: false,
          inputs: [],
          name: "renouncePauser",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: true,
          inputs: [
              {
                  name: "owner",
                  type: "address",
              },
          ],
          name: "balanceOf",
          outputs: [
              {
                  name: "",
                  type: "uint256",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: false,
          inputs: [
              {
                  name: "account",
                  type: "address",
              },
          ],
          name: "addPauser",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: false,
          inputs: [],
          name: "pause",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: true,
          inputs: [],
          name: "symbol",
          outputs: [
              {
                  name: "",
                  type: "string",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: false,
          inputs: [
              {
                  name: "account",
                  type: "address",
              },
          ],
          name: "addMinter",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: false,
          inputs: [],
          name: "renounceMinter",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: false,
          inputs: [
              {
                  name: "to",
                  type: "address",
              },
              {
                  name: "approved",
                  type: "bool",
              },
          ],
          name: "setApprovalForAll",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: true,
          inputs: [
              {
                  name: "account",
                  type: "address",
              },
          ],
          name: "isMinter",
          outputs: [
              {
                  name: "",
                  type: "bool",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: false,
          inputs: [
              {
                  name: "from",
                  type: "address",
              },
              {
                  name: "to",
                  type: "address",
              },
              {
                  name: "tokenId",
                  type: "uint256",
              },
              {
                  name: "_data",
                  type: "bytes",
              },
          ],
          name: "safeTransferFrom",
          outputs: [],
          payable: false,
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          constant: true,
          inputs: [
              {
                  name: "tokenId",
                  type: "uint256",
              },
          ],
          name: "tokenURI",
          outputs: [
              {
                  name: "",
                  type: "string",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          constant: true,
          inputs: [
              {
                  name: "owner",
                  type: "address",
              },
              {
                  name: "operator",
                  type: "address",
              },
          ],
          name: "isApprovedForAll",
          outputs: [
              {
                  name: "",
                  type: "bool",
              },
          ],
          payable: false,
          stateMutability: "view",
          type: "function",
      },
      {
          anonymous: false,
          inputs: [
              {
                  indexed: false,
                  name: "account",
                  type: "address",
              },
          ],
          name: "Paused",
          type: "event",
      },
      {
          anonymous: false,
          inputs: [
              {
                  indexed: false,
                  name: "account",
                  type: "address",
              },
          ],
          name: "Unpaused",
          type: "event",
      },
      {
          anonymous: false,
          inputs: [
              {
                  indexed: true,
                  name: "account",
                  type: "address",
              },
          ],
          name: "PauserAdded",
          type: "event",
      },
      {
          anonymous: false,
          inputs: [
              {
                  indexed: true,
                  name: "account",
                  type: "address",
              },
          ],
          name: "PauserRemoved",
          type: "event",
      },
      {
          anonymous: false,
          inputs: [
              {
                  indexed: true,
                  name: "account",
                  type: "address",
              },
          ],
          name: "MinterAdded",
          type: "event",
      },
      {
          anonymous: false,
          inputs: [
              {
                  indexed: true,
                  name: "account",
                  type: "address",
              },
          ],
          name: "MinterRemoved",
          type: "event",
      },
      {
          anonymous: false,
          inputs: [
              {
                  indexed: true,
                  name: "from",
                  type: "address",
              },
              {
                  indexed: true,
                  name: "to",
                  type: "address",
              },
              {
                  indexed: true,
                  name: "tokenId",
                  type: "uint256",
              },
          ],
          name: "Transfer",
          type: "event",
      },
      {
          anonymous: false,
          inputs: [
              {
                  indexed: true,
                  name: "owner",
                  type: "address",
              },
              {
                  indexed: true,
                  name: "approved",
                  type: "address",
              },
              {
                  indexed: true,
                  name: "tokenId",
                  type: "uint256",
              },
          ],
          name: "Approval",
          type: "event",
      },
      {
          anonymous: false,
          inputs: [
              {
                  indexed: true,
                  name: "owner",
                  type: "address",
              },
              {
                  indexed: true,
                  name: "operator",
                  type: "address",
              },
              {
                  indexed: false,
                  name: "approved",
                  type: "bool",
              },
          ],
          name: "ApprovalForAll",
          type: "event",
      },
  ];
  const _bytecode = "0x600860809081527f54455354204e465400000000000000000000000000000000000000000000000060a052610100604052600460c09081527f544e46540000000000000000000000000000000000000000000000000000000060e05281816200008f7f01ffc9a7000000000000000000000000000000000000000000000000000000006200019b602090811b901c565b620000a76380ac58cd60e01b6200019b60201b60201c565b620000bf63780e9d6360e01b6200019b60201b60201c565b8151620000d490600990602085019062000435565b508051620000ea90600a90602084019062000435565b5062000103635b5e139f60e01b6200019b60201b60201c565b5050505062000118336200026a60201b60201c565b6200013063eab83e2060e01b6200019b60201b60201c565b620001486342966c6860e01b6200019b60201b60201c565b6200015933620002bc60201b60201c565b600e805460ff19169055620001957f4d5507ff000000000000000000000000000000000000000000000000000000006200019b602090811b901c565b620004da565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156200022d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4b495031333a20696e76616c696420696e746572666163652069640000000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b6200028581600c6200030e60201b62001c531790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b620002d781600d6200030e60201b62001c531790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b620003208282620003b260201b60201c565b156200038d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b03821662000415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062002a966022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200047857805160ff1916838001178555620004a8565b82800160010185558215620004a8579182015b82811115620004a85782518255916020019190600101906200048b565b50620004b6929150620004ba565b5090565b620004d791905b80821115620004b65760008155600101620004c1565b90565b6125ac80620004ea6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80634f6ccce71161010457806395d89b41116100a2578063aa271e1a11610071578063aa271e1a146105fd578063b88d4fde14610623578063c87b56dd146106e9578063e985e9c514610706576101cf565b806395d89b4114610599578063983b2d56146105a157806398650275146105c7578063a22cb465146105cf576101cf565b80636ef8d66d116100de5780636ef8d66d1461053d57806370a082311461054557806382dc1ec41461056b5780638456cb5914610591576101cf565b80634f6ccce7146104fb5780635c975abb146105185780636352211e14610520576101cf565b80632f745c591161017157806342842e0e1161014b57806342842e0e1461046557806342966c681461049b57806346fbf68e146104b85780634dc2b5c4146104de576101cf565b80632f745c59146104055780633f4ba83a1461043157806340c10f1914610439576101cf565b8063095ea7b3116101ad578063095ea7b3146102c5578063153a1f3e146102f357806318160ddd146103b557806323b872dd146103cf576101cf565b806301ffc9a7146101d457806306fdde031461020f578063081812fc1461028c575b600080fd5b6101fb600480360360208110156101ea57600080fd5b50356001600160e01b031916610734565b604080519115158252519081900360200190f35b610217610753565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610251578181015183820152602001610239565b50505050905090810190601f16801561027e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a9600480360360208110156102a257600080fd5b50356107ea565b604080516001600160a01b039092168252519081900360200190f35b6102f1600480360360408110156102db57600080fd5b506001600160a01b03813516906020013561084f565b005b6102f16004803603604081101561030957600080fd5b81019060208101813564010000000081111561032457600080fd5b82018360208201111561033657600080fd5b8035906020019184602083028401116401000000008311171561035857600080fd5b91939092909160208101903564010000000081111561037657600080fd5b82018360208201111561038857600080fd5b803590602001918460208302840111640100000000831117156103aa57600080fd5b5090925090506108ae565b6103bd610902565b60408051918252519081900360200190f35b6102f1600480360360608110156103e557600080fd5b506001600160a01b03813581169160208101359091169060400135610908565b6103bd6004803603604081101561041b57600080fd5b506001600160a01b038135169060200135610969565b6102f16109eb565b6101fb6004803603604081101561044f57600080fd5b506001600160a01b038135169060200135610acb565b6102f16004803603606081101561047b57600080fd5b506001600160a01b03813581169160208101359091169060400135610b27565b6102f1600480360360208110156104b157600080fd5b5035610b42565b6101fb600480360360208110156104ce57600080fd5b50356001600160a01b0316610b96565b6102f1600480360360208110156104f457600080fd5b5035610baf565b6103bd6004803603602081101561051157600080fd5b5035610c14565b6101fb610c7d565b6102a96004803603602081101561053657600080fd5b5035610c86565b6102f1610cdd565b6103bd6004803603602081101561055b57600080fd5b50356001600160a01b0316610ce8565b6102f16004803603602081101561058157600080fd5b50356001600160a01b0316610d53565b6102f1610da3565b610217610e7d565b6102f1600480360360208110156105b757600080fd5b50356001600160a01b0316610ede565b6102f1610f2e565b6102f1600480360360408110156105e557600080fd5b506001600160a01b0381351690602001351515610f37565b6101fb6004803603602081101561061357600080fd5b50356001600160a01b0316610f92565b6102f16004803603608081101561063957600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561067457600080fd5b82018360208201111561068657600080fd5b803590602001918460018302840111640100000000831117156106a857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610fa5945050505050565b610217600480360360208110156106ff57600080fd5b5035611000565b6101fb6004803603604081101561071c57600080fd5b506001600160a01b03813581169160200135166110e8565b6001600160e01b03191660009081526020819052604090205460ff1690565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107df5780601f106107b4576101008083540402835291602001916107df565b820191906000526020600020905b8154815290600101906020018083116107c257829003601f168201915b505050505090505b90565b60006107f582611116565b61083357604051600160e51b62461bcd02815260040180806020018281038252602b8152602001806124f4602b913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b600e5460ff16156108a05760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6108aa8282611133565b5050565b8060005b818110156108fa576108f2338787848181106108ca57fe5b905060200201356001600160a01b03168686858181106108e657fe5b90506020020135610908565b6001016108b2565b505050505050565b60075490565b600e5460ff16156109595760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b610964838383611260565b505050565b600061097483610ce8565b82106109b457604051600160e51b62461bcd02815260040180806020018281038252602a815260200180612300602a913960400191505060405180910390fd5b6001600160a01b03831660009081526005602052604090208054839081106109d857fe5b9060005260206000200154905092915050565b6109f433610b96565b610a3257604051600160e51b62461bcd0281526004018080602001828103825260308152602001806122ad6030913960400191505060405180910390fd5b600e5460ff16610a8c5760408051600160e51b62461bcd02815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b600e805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6000610ad633610f92565b610b1457604051600160e51b62461bcd02815260040180806020018281038252603081526020018061232a6030913960400191505060405180910390fd5b610b1e83836112b3565b50600192915050565b61096483838360405180602001604052806000815250610fa5565b610b4c33826112d0565b610b8a57604051600160e51b62461bcd02815260040180806020018281038252602f815260200180612425602f913960400191505060405180910390fd5b610b9381611377565b50565b6000610ba9600d8363ffffffff61138916565b92915050565b610bb833610f92565b610bf657604051600160e51b62461bcd02815260040180806020018281038252603081526020018061232a6030913960400191505060405180910390fd5b60005b818110156108aa57610c0b3382610acb565b50600101610bf9565b6000610c1e610902565b8210610c5e57604051600160e51b62461bcd02815260040180806020018281038252602b8152602001806124a5602b913960400191505060405180910390fd5b60078281548110610c6b57fe5b90600052602060002001549050919050565b600e5460ff1690565b6000818152600160205260408120546001600160a01b031680610ba957604051600160e51b62461bcd02815260040180806020018281038252602881526020018061237b6028913960400191505060405180910390fd5b610ce6336113f3565b565b60006001600160a01b038216610d3257604051600160e51b62461bcd0281526004018080602001828103825260298152602001806124546029913960400191505060405180910390fd5b6001600160a01b0382166000908152600360205260409020610ba99061143b565b610d5c33610b96565b610d9a57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806122ad6030913960400191505060405180910390fd5b610b938161143f565b610dac33610b96565b610dea57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806122ad6030913960400191505060405180910390fd5b600e5460ff1615610e3b5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b600e805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107df5780601f106107b4576101008083540402835291602001916107df565b610ee733610f92565b610f2557604051600160e51b62461bcd02815260040180806020018281038252603081526020018061232a6030913960400191505060405180910390fd5b610b9381611487565b610ce6336114cf565b600e5460ff1615610f885760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6108aa8282611517565b6000610ba9600c8363ffffffff61138916565b610fb0848484610908565b610fbc848484846115e6565b610ffa57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806123f56030913960400191505060405180910390fd5b50505050565b606061100b82611116565b61104957604051600160e51b62461bcd02815260040180806020018281038252602e81526020018061227f602e913960400191505060405180910390fd5b6000828152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156110dc5780601f106110b1576101008083540402835291602001916110dc565b820191906000526020600020905b8154815290600101906020018083116110bf57829003601f168201915b50505050509050919050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b600061113e82610c86565b9050806001600160a01b0316836001600160a01b031614156111aa5760408051600160e51b62461bcd02815260206004820181905260248201527f4b495031373a20617070726f76616c20746f2063757272656e74206f776e6572604482015290519081900360640190fd5b336001600160a01b03821614806111c657506111c681336110e8565b61120457604051600160e51b62461bcd02815260040180806020018281038252603781526020018061251f6037913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b61126a33826112d0565b6112a857604051600160e51b62461bcd0281526004018080602001828103825260308152602001806123a36030913960400191505060405180910390fd5b6109648383836119c9565b6112bd82826119e8565b6112c78282611b1f565b6108aa81611b5d565b60006112db82611116565b61131957604051600160e51b62461bcd02815260040180806020018281038252602b815260200180612556602b913960400191505060405180910390fd5b600061132483610c86565b9050806001600160a01b0316846001600160a01b0316148061135f5750836001600160a01b0316611354846107ea565b6001600160a01b0316145b8061136f575061136f81856110e8565b949350505050565b610b9361138382610c86565b82611ba1565b60006001600160a01b0382166113d357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806123d36022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611404600d8263ffffffff611be916565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b5490565b611450600d8263ffffffff611c5316565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b611498600c8263ffffffff611c5316565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6114e0600c8263ffffffff611be916565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6001600160a01b0382163314156115785760408051600160e51b62461bcd02815260206004820152601860248201527f4b495031373a20617070726f766520746f2063616c6c65720000000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b60008060606115fd866001600160a01b0316611cd7565b61160c5760019250505061136f565b856001600160a01b031663150b7a0260e01b3389888860405160240180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611698578181015183820152602001611680565b50505050905090810190601f1680156116c55780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909a16999099178952518151919890975087965094509250829150849050835b6020831061172d5780518252601f19909201916020918201910161170e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461178f576040519150601f19603f3d011682016040523d82523d6000602084013e611794565b606091505b5080519193509150158015906117d457508051600160e11b630a85bd010290602080840191908110156117c657600080fd5b50516001600160e01b031916145b156117e45760019250505061136f565b856001600160a01b0316636745782b60e01b3389888860405160240180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611870578181015183820152602001611858565b50505050905090810190601f16801561189d5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909a16999099178952518151919890975087965094509250829150849050835b602083106119055780518252601f1990920191602091820191016118e6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611967576040519150601f19603f3d011682016040523d82523d6000602084013e61196c565b606091505b5080519193509150158015906119ac57508051600160e01b636745782b02906020808401919081101561199e57600080fd5b50516001600160e01b031916145b156119bc5760019250505061136f565b5060009695505050505050565b6119d4838383611cdd565b6119de8382611e27565b6109648282611b1f565b6001600160a01b038216611a465760408051600160e51b62461bcd02815260206004820152601f60248201527f4b495031373a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611a4f81611116565b15611aa45760408051600160e51b62461bcd02815260206004820152601b60248201527f4b495031373a20746f6b656e20616c7265616479206d696e7465640000000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b038716908117909155835260039091529020611ae390611f1c565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0390911660009081526005602081815260408084208054868652600684529185208290559282526001810183559183529091200155565b600780546000838152600860205260408120829055600182018355919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155565b611bab8282611f25565b6000818152600b602052604090205460026000196101006001841615020190911604156108aa576000818152600b602052604081206108aa916121fc565b611bf38282611389565b611c3157604051600160e51b62461bcd02815260040180806020018281038252602181526020018061235a6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b611c5d8282611389565b15611cb25760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b3b151590565b826001600160a01b0316611cf082610c86565b6001600160a01b031614611d3857604051600160e51b62461bcd02815260040180806020018281038252602881526020018061247d6028913960400191505060405180910390fd5b6001600160a01b038216611d8057604051600160e51b62461bcd0281526004018080602001828103825260238152602001806122dd6023913960400191505060405180910390fd5b611d8981611f51565b6001600160a01b0383166000908152600360205260409020611daa90611f8c565b6001600160a01b0382166000908152600360205260409020611dcb90611f1c565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b038216600090815260056020526040812054611e5190600163ffffffff611fa316565b600083815260066020526040902054909150808214611eec576001600160a01b0384166000908152600560205260408120805484908110611e8e57fe5b906000526020600020015490508060056000876001600160a01b03166001600160a01b031681526020019081526020016000208381548110611ecc57fe5b600091825260208083209091019290925591825260069052604090208190555b6001600160a01b0384166000908152600560205260409020805490611f15906000198301612240565b5050505050565b80546001019055565b611f2f8282611fec565b611f398282611e27565b6000818152600660205260408120556108aa816120c6565b6000818152600260205260409020546001600160a01b031615610b9357600090815260026020526040902080546001600160a01b0319169055565b8054611f9f90600163ffffffff611fa316565b9055565b6000611fe583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612162565b9392505050565b816001600160a01b0316611fff82610c86565b6001600160a01b03161461204757604051600160e51b62461bcd0281526004018080602001828103825260248152602001806124d06024913960400191505060405180910390fd5b61205081611f51565b6001600160a01b038216600090815260036020526040902061207190611f8c565b60008181526001602052604080822080546001600160a01b0319169055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6007546000906120dd90600163ffffffff611fa316565b600083815260086020526040812054600780549394509092849081106120ff57fe5b90600052602060002001549050806007838154811061211a57fe5b6000918252602080832090910192909255828152600890915260409020829055600780549061214d906000198301612240565b50505060009182525060086020526040812055565b600081848411156121f457604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121b95781810151838201526020016121a1565b50505050905090810190601f1680156121e65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b50805460018160011615610100020316600290046000825580601f106122225750610b93565b601f016020900490600052602060002090810190610b939190612260565b815481835581811115610964576000838152602090206109649181019083015b6107e791905b8082111561227a5760008155600101612266565b509056fe4b495031374d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654b495031373a207472616e7366657220746f20746865207a65726f20616464726573734b49503137456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e64734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654b495031373a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4b495031373a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734b495031373a207472616e7366657220746f206e6f6e204b49503137526563656976657220696d706c656d656e7465724b495031374275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644b495031373a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734b495031373a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4b49503137456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e64734b495031373a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e4b495031373a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4b495031373a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4b495031373a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656ea165627a7a72305820006495a3349f89e6d1f344054c03209fd98a62180b5f22efbcf882bd74201fab0029526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373";
  class TestNFT__factory extends ethers_1.ContractFactory {
      constructor(signer) {
          super(_abi, _bytecode, signer);
      }
      deploy(overrides) {
          return super.deploy(overrides || {});
      }
      getDeployTransaction(overrides) {
          return super.getDeployTransaction(overrides || {});
      }
      attach(address) {
          return super.attach(address);
      }
      connect(signer) {
          return super.connect(signer);
      }
      static createInterface() {
          return new ethers_1.utils.Interface(_abi);
      }
      static connect(address, signerOrProvider) {
          return new ethers_1.Contract(address, _abi, signerOrProvider);
      }
  }
  exports.TestNFT__factory = TestNFT__factory;
  TestNFT__factory.bytecode = _bytecode;
  TestNFT__factory.abi = _abi;
  //# sourceMappingURL=TestNFT__factory.js.map